题目传送门 1 /* 2 题意:就是从上到下,找到最短路,输出路径 3 DP+路径:状态转移方程:dp[i][j] = min (dp[i-1][j], dp[i][j-1], dp[i][j+1]) + a[[i][j]; (类似数塔问题) 4 关键在...
分类:
其他好文 时间:
2015-05-11 12:50:22
阅读次数:
127
---恢复内容开始---//n:盘子个数 a,b,c用字符表示三根柱子void hanoiTower(int n, char a, char b, char c){ static int step = 0; if (n == 1) { cout << ++step<...
分类:
其他好文 时间:
2015-05-09 23:29:09
阅读次数:
134
//n:盘子个数 a,b,c用字符表示三根柱子void hanoiTower(int n, char a, char b, char c){ static int step = 0; if (n == 1) { cout << ++step<<": "<<a <<...
分类:
其他好文 时间:
2015-05-09 20:21:56
阅读次数:
110
1 #include 2 void hanoi(int s,char a,char b,char c) //a是出发盘,b是中途盘,c是结束盘 3 { 4 if(s==0) return; 5 hanoi(s-1,a,c,b); //把最底下的从a借助c移动到b 6 ...
分类:
其他好文 时间:
2015-05-09 18:46:13
阅读次数:
143
汉诺塔(二)题目链接
汉诺塔问题的经典结论:把i个盘子从一个柱子整体移到另一个柱子最少需要步数是 2的i次方减一。那我们这个给定一个初始局面,求他到目标局面(全部移到第三个柱子上)需要的最少步数。怎么办呢!!分析:
1、总的来说一定是先把最大的盘子移到第三个柱子上, 然后再把第二大的移到柱子3上, 然后再把第三大的盘子移到柱子3上………直到把最小的盘子(1号盘子)移到柱子3上,才算结束。
2、...
分类:
其他好文 时间:
2015-05-09 08:54:57
阅读次数:
136
题目网址 :http://acm.nyist.net/JudgeOnline/problem.php?pid=89汉诺塔问题的经典结论:把i个盘子从一个柱子整体移到另一个柱子最少需要步数是 2的i次方减一。那我们这个给定一个初始局面,求他到目标局面(全部移到第三个柱子上)需要的最少步数。怎么办呢!!...
分类:
其他好文 时间:
2015-05-09 01:06:57
阅读次数:
160
问题:如题回答:#include #include int p(int n) { int ans,r; if(n==1) return 1; ans=0; r=(int)(sqrt(8*n+1)-1)/2; ans+=pow(2,r)-1; ans+=2*p(n-r); retur...
分类:
其他好文 时间:
2015-05-05 19:07:39
阅读次数:
97
题目描述Description汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。游戏中的每一步规则如下:1. 每一步只允许移动一...
分类:
其他好文 时间:
2015-05-01 21:11:23
阅读次数:
177
汉诺塔:(Hanoi)是一种玩具,如图![这里写图片描述] (http://img.blog.csdn.net/20150430225337439)
从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面.
问题理解与描述:
1.问题的理解与描述
问题的形式化表示为:
输入:圆盘数n,3根细杆—...
分类:
编程语言 时间:
2015-05-01 09:27:31
阅读次数:
157
题目描述 Description有N个圆盘,依半径大小(半径都不同),自下而上套在A柱上,每次只允许移动最上面一个盘子到另外的柱子上去(除A柱外,还有B柱和C柱,开始时这两个柱子上无盘子),但绝不允许发生柱子上出现大盘子在上,小盘子在下的情况,现要求设计将A柱子上N个盘子搬移到C柱去的方法。输入输出...
分类:
其他好文 时间:
2015-05-01 00:35:10
阅读次数:
357