题目链接:http://sfxb.openjudge.cn/dongtaiguihua/E/题目描述:4个柱子的汉诺塔,求盘子个数n从1到12时,从A移到D所需的最大次数。限制条件和三个柱子的汉诺塔问题相同。解题思路:采用动态规划算法的思路为先从将k个盘子使用4个柱子的方法从A移到B,然后将A上剩下...
分类:
其他好文 时间:
2015-04-01 00:14:13
阅读次数:
152
两种操作都是递归实现,汉诺塔思想。#include
#include
using namespace std;void reverse(stack &s)//逆序栈
{
if(s.size()==0)
return ;
int a=s.top();
s.pop();
if(s.size()==0)
{...
分类:
编程语言 时间:
2015-03-29 21:01:09
阅读次数:
247
汉诺塔III
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11335 Accepted Submission(s): 5121
Problem Description
约19世纪末,在欧州的商店中出售一种智力玩具...
分类:
其他好文 时间:
2015-03-28 21:54:37
阅读次数:
175
两种操作都是递归实现,汉诺塔思想。
1、逆序栈
void ReverseStack(Stack& stack)
{
if (stack.Count == 0)
return;
object top = stack.Pop();
ReverseStack(stack);
if (stack.Count == 0)
{
sta...
分类:
编程语言 时间:
2015-03-28 08:55:16
阅读次数:
182
一:插入排序
/*
* 插入排序
*/
/*
* 原序列 [12] 15 9 20 6 31 24
* 第0趟 [12 15] 9 20 6 31 24
* 第1趟 [9 12 15] 20 6 31 24
* 第2趟 [9 12 15 20] 6 31 24
* 第3趟 [6 9 12 15 20] 31 24
* n个数,一共需要多少趟?n个数,n-1趟
* 第...
分类:
编程语言 时间:
2015-03-22 09:18:50
阅读次数:
161
汉诺塔(三)
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片...
分类:
其他好文 时间:
2015-03-18 20:33:45
阅读次数:
176
解析:
1、先看汉诺塔1的情况
a、只有一个盘子时,只需挪动一步;
b、假如n个盘子要移动An步,则有n+1个盘子可以先通过An步把上面的n个盘子挪到第二个柱子上,再挪最大的盘子,最后把n个盘子挪到大的上面,总共2An+1步,则有A(n+1)=2An+1。
c、以上式子可推得An=2^n-1。
2、回过来看该題,该题多加了一根柱子,现在有四根柱子了,分别是a,b,c,d,计算将n个盘...
分类:
其他好文 时间:
2015-03-16 21:18:09
阅读次数:
101
汉诺塔的问题,也是一个经典的递归算法问题。
下面是自己总结的一张整体流程图。。。...
分类:
编程语言 时间:
2015-03-10 21:29:03
阅读次数:
233
近段时间用到回溯算法的地方比较多,对算法的理解也有深入。今天偶然发现一张照片,是高中时未做完的一道数独题。当时用的是“候选余数法”,之后由于太麻烦,就没有做完。不过当时截图保存了,今天突然看到。那时候刚学完C语言,对汉诺塔递归都不是太理解,所以就一直拖到现在..
分类:
其他好文 时间:
2015-03-10 01:40:37
阅读次数:
128
直接上代码吧 1 #include 2 #include 3 4 using namespace std; 5 6 int step=0; 7 8 void move(char x,char y); 9 void hannoi(int n,char a,char b,char c);10 ...
分类:
其他好文 时间:
2015-03-09 00:27:48
阅读次数:
171