比赛 NOIP2007普及组(复现) 评测结果 AAAAAAWWWA
题目名称 Hanoi双塔问题 最终得分 70
用户昵称 xunber 运行时间 0.005 s
代码语言 C++ 内存使用 13.67 MiB
提交时间 2020-02-09 17:31:13
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
unsigned long ans[1001];
int vis[1001];
unsigned long han(int n){
	unsigned long cnt;
	if(vis[n]==1) return ans[n];
	if(n==1) cnt=1;
	else if(n==2) cnt=2;
	else{
		if(n%2==0) cnt=han(n-1)+1;
		if(n%2==1) cnt=2*han(n-1)+1;
	}
	ans[n]=cnt;
	vis[n]=1;
	return cnt;
}
int main(){
	freopen("hanoi.in","r",stdin);
	freopen("hanoi.out","w",stdout);
	int n;
	cin>>n;
	cout<<han(2*n);
	return 0;
}