欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

POJ 1958 Strange Towers of Hanoi G++ 汉诺塔 动态规划 背

程序员文章站 2022-04-06 18:44:49
...

POJ 1958 Strange Towers of Hanoi G++ 汉诺塔 动态规划 背

POJ 1958 Strange Towers of Hanoi G++ 汉诺塔 动态规划 背

POJ 1958 Strange Towers of Hanoi G++ 汉诺塔 动态规划 背

#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm> 
using namespace std;
//英语  看博友分析   抄博友程序   汉诺塔   动态规划    背
int f[20];
int main()
{
	//for(int i=1;i<=12;i++)//wa 先移动最上边的一个  再将其他n-1个按标准汉诺塔移动 最后将最小的盘子移动到排好的n-1个汉诺塔上 
	//cout<<1+ pow(2,i-1)-1 +1<<endl;//wa
	memset(f,0x3f,sizeof(f));
	f[1]=1;
	for(int i=1;i<=12;i++)
	{
		for(int j=1;j<i;j++)
		{
			f[i]=min(f[i],f[j]*2+(int)pow(2,i-j)-1);
		}
	}
	for(int i=1;i<=12;i++)
	{
		cout<<f[i]<<endl;
	}
}