hdu 1995 汉诺塔V

点击打开链接

dp[i][j]表示共有i个圆盘的汉诺塔,第j个最少移动的次数

dp[i][j]=dp[i-1][j]*2;

#include"stdio.h"
#include"string.h"
#include"math.h"
__int64 dp[64][64];
int main()
{
	int i,j;
	int n,m;
	int t;
	memset(dp,0,sizeof(dp));
	for(i=1;i<=60;i++)
	{
		for(j=1;j<=i;j++)
		{
			if(dp[i-1][j]==0)
			{
				dp[i][j]=1;continue;
			}
			dp[i][j]=2*dp[i-1][j];
		}
	}
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&n,&m);
		printf("%I64d\n",dp[n][m]);
	}
	return 0;
}


你可能感兴趣的:(hdu 1995 汉诺塔V)