HDU 1995 汉诺塔V
这个是普通版本的汉诺塔:)
它的递推式为:
a[1] = 1;
a[n] = a[n-1] * 2 + 1;
这题求特定盘子的移动个数,很显然,第n个1次,而n-1个为的2倍。
从递推式可以看出,从下往上,次数*2(递推式+1表示把第n个移动到c)
又水一题~
#include <iostream> using namespace std; int main() { int T; scanf("%d",&T); while(T--) { int n,num; scanf("%d%d",&n,&num); __int64 ans=1; for(int i=n;i>num;i--) ans*=2; printf("%I64d\n",ans); } }
新 blog : www.hrwhisper.me