记录编号 430864 评测结果 AAWWWWWWWW
题目名称 578.汉诺塔 最终得分 20
用户昵称 rewine 是否通过 未通过
代码语言 C++ 运行时间 0.004 s
提交时间 2017-07-30 19:03:57 内存使用 0.37 MiB
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;

typedef long long SL;
bool sg[33][202];
SL f[33][202];
int n,m;

int main() {
	freopen("ionah.in","r",stdin);
	freopen("ionah.out","w",stdout);
    cin >> n >> m;
    memset(f,127/3,sizeof f);
    f[3][0] = 0; 
    for (int i = 1; i <= m; i++) f[3][i] = f[3][i-1]*2+1;
    for (int i = 4; i <= n; i++) {
     f[i][0] = 0; f[i][1] = 1;
	 for (int j = 2; j <= m; j++)
	  for (int k = 1; k <= j; k++) 
        f[i][j] = min(f[i][j],f[i][k]*2+f[i-1][j-k]);
	}
    cout << f[n][m];
	return 0;
}