汉诺塔
x_xueting
这个作者很懒,什么都没留下…
展开
-
Hdu1995汉诺塔V
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1995 这道题要求的是在到达目标时K号盘子需要移动的次数,那么你应该要明白的是K号盘子的移动次数只和下面的盘子有关, 跟上面的盘子都无关,所以这道题就转化成了剩下的n-k+1(k号盘下面的盘子数包括k号盘)号盘子需要移动的次数 然后因为如果是第n号盘子的话 那他的移动次数肯定是1 所以我原创 2017-07-30 15:05:34 · 590 阅读 · 0 评论 -
Hdu2064汉诺塔III
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2064 这个题目改变了汉诺塔的经典玩法,但其实一样画图找出递归公式就可以了 首先数组a[]记录移动的步数,a[1]=2,因为游戏规定不能直接从最左边移到最右边,只能从中间过,所以一个盘子的时候就多了一步 接下来 A B C三个塔,n(n>=2)个盘子,模拟整个过程: 1.先考虑n-原创 2017-07-28 15:51:23 · 235 阅读 · 0 评论 -
Hdu1207汉诺塔II
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1207 这是一个关于汉诺塔的四柱问题,参考了网上的讲解 贴个链接 http://www.cnblogs.com/fanzhidongyzby/archive/2012/07/28/2613173.html 这里有个问题就是pow()函数返回的是一个double类型的数据 所以数组要定义成doub原创 2017-07-28 15:42:21 · 383 阅读 · 0 评论 -
Hdu1329Hanoi Tower Troubles Again!
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1329 打表找规律 #include int main() { int i,a[51],t,n; a[1]=1; a[2]=3; for(i=3; i { if(i%2==0) a[i]=原创 2017-07-30 17:14:27 · 245 阅读 · 0 评论 -
Hdu2511汉诺塔X
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2511 模拟(+递归)盘子移动的过程: 1.如果m=a[n-1]+1,即刚好移动n号盘子,移动方向A-->C 2.如果m>a[n-1],则考虑n-1号盘子,移动方向是B-->C,移动次数是m-(a[n-1]+1) 3.如果mB,移动次数是m; 4.重复1,2原创 2017-07-30 17:10:45 · 402 阅读 · 0 评论 -
Hdu2184汉诺塔VIII
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2184 模拟: 1.如果m=a[n],说明n个盘子从A移到了C,,移动次数为m 2.若果m>a[n-1],说明n号盘子已经从A移到了C,并且考虑其他n-1个盘子,正从B--C,移动次数为m-(a[n-1]+1) 3.如果mB,移动次数为m 4.重复1,2,3 #include原创 2017-07-30 17:09:14 · 354 阅读 · 0 评论 -
Hdu2175汉诺塔IX
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2175 贴两种做法 不过思路都一样 第一种 #include __int64 m,a[64]; int n; int hanio(int n,__int64 m) { if(m==a[n-1]+1) return n; if(m>a[n-1]原创 2017-07-30 16:33:49 · 222 阅读 · 0 评论 -
Hdu1997汉诺塔VII
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1997 模拟盘子移动的过程: 1.根据经典的汉诺塔问题来讲,最大编号n的盘子一定是从A移到C,其余n-1个盘子从A通过C移到B, 所以编号为n的盘子如果在B塔上那么直接返回false,否则的话进行第二步 2.n号盘子不在B塔上,假设在A塔上,说明其余n-1个盘子从A通原创 2017-07-30 16:30:30 · 212 阅读 · 0 评论 -
Hdu1996汉诺塔VI
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1996 题中说产生错移的所有可能系列,实际是盘子表示放在每个塔上的可能情况 所以n个盘子,每个盘子有3种摆放的可能,所以就有3的n次幂种可能情况 #include #include int main() { int t,n; scanf("%d",&t);原创 2017-07-30 16:27:19 · 262 阅读 · 0 评论 -
Hdu2077汉诺塔IV
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2077 这个题跟汉诺塔III的思路是一样的 只是分最后一步就行 贴一下我的汉诺塔III的解题链接 http://blog.csdn.net/x_xueting/article/details/76264947 在第5步是将n-1个盘子从A-->B-->C,那么这个题就是在n-1个盘子从A-->原创 2017-07-28 16:43:45 · 321 阅读 · 0 评论