HDU 1207(汉诺塔II)

参考博客:多柱汉诺塔最优算法设计探究

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int INF = 0x3f3f3f3f;

int main()
{
	int dp[70]; //移动次数
	memset(dp, INF, sizeof(dp));
	dp[1] = 1;
	dp[2] = 3;
	for (int i = 1; i <= 64; i++)
	{
		for (int j = 1; j < i; j++)
		{
			dp[i] = min(1.0 * dp[i], 2 * dp[j] + pow(2, i - j) - 1);
		}
	}

	int N;
	while (cin >> N)
	{
		cout << dp[N] << endl;
	}
	return 0;
}

继续加油。

发布了138 篇原创文章 · 获赞 1 · 访问量 7005

猜你喜欢

转载自blog.csdn.net/Intelligence1028/article/details/104621585
今日推荐