HDU2077:漢諾塔IV
阿新 • • 發佈:2019-02-15
Problem Description
還記得漢諾塔III嗎?他的規則是這樣的:不允許直接從最左(右)邊移到最右(左)邊(每次移動一定是移到中間杆或從中間移出),也不允許大盤放到小盤的上面。xhd在想如果我們允許最大的盤子放到最上面會怎麼樣呢?(只允許最大的放在最上面)當然最後需要的結果是盤子從小到大排在最右邊。
Input 輸入資料的第一行是一個數據T,表示有T組資料。
每組資料有一個正整數n(1 <= n <= 20),表示有n個盤子。
Output 對於每組輸入資料,最少需要的擺放次數。
Sample Input 2 1 10
Sample Output 2 19684
Input 輸入資料的第一行是一個數據T,表示有T組資料。
每組資料有一個正整數n(1 <= n <= 20),表示有n個盤子。
Output 對於每組輸入資料,最少需要的擺放次數。
Sample Input 2 1 10
Sample Output 2 19684
漢諾塔2,3,4
只要A了其中一道
另外兩道都是秒A的嘛
同樣是遞推的問題
在2064的基礎上改變了一些東西,原理差不多,都是隻能先移動到中間的柱子
#include <stdio.h> __int64 a[100]; void set() { int i; a[0] = 0; a[1] = 1; for(i = 2;i<=64;i++) a[i] = 3*a[i-1]+1; } int main() { int n,t; set(); scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%I64d\n",2*a[n-1]+2); } return 0; }