題目鏈結
思路
首先這是個多柱漢諾塔問題,對於n階漢諾塔,具體步驟如下:
1. 首先我們將x個盤子移到b柱,步數為step(x);
2. 然後將n-x個盤子移到c柱,步數為2^(n-x)-1;
3. 最後我們再將b柱上的x個盤子移到c柱,步數為step(x)。
4. 上面的x在1到n之間取值,對於每乙個x,我們可以求出乙個step(n),然後我們取其中的最小值作為最優解;
code
#include
#include
#include
#include
using namespace std;
double
step[65]; //為防止溢位,使用double
int main()
}int n;
while(cin >> n)
return
0;}
hdu1207漢諾塔II四柱
題目鏈結 problem description 經典的漢諾塔問題經常作為乙個遞迴的經典例題存在。可能有人並不知道漢諾塔問題的典故。漢諾塔 於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片 圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根...
杭電 1207 漢諾塔II
漢諾塔ii problem description 經典的漢諾塔問題經常作為乙個遞迴的經典例題存在。可能有人並不知道漢諾塔問題的典故。漢諾塔 於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片 圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一...
杭電1207 漢諾塔II
經典的漢諾塔問題經常作為乙個遞迴的經典例題存在。可能有人並不知道漢諾塔問題的典故。漢諾塔 於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片 圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱...