比赛 20111108 评测结果 AAAWWWWWWW
题目名称 分裂 最终得分 30
用户昵称 yifeng 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-08 11:11:04
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int N;
int main()
{
	freopen("mushroom.in","r",stdin);
	freopen("mushroom.out","w",stdout);
	scanf("%d\n",&N);
	unsigned long long F[2][20001];
	bool flag=true;
	for (int i=1;i<=20001;i++)
		F[flag][i]=0;
	F[flag][2]=1;
	for (int i=2;i<=N;i++)
	{
		if(flag)
		{
			for (int j=1;j<=i+1;j++)
				F[!flag][j]=0;
			for (int j=1;j<=i+1;j+=2)
			{
				int tmp=0;
				if(j>=2)
					tmp=F[flag][j-1];
				F[!flag][j]=tmp+F[flag][j+1];
			}
			flag=!flag;
			continue;
		}
		else
		{
			for (int j=1;j<=i+1;j++)
				F[!flag][j]=0;
			for (int j=2;j<=i+1;j+=2)
			{
				F[!flag][j]=F[flag][j-1]+F[flag][j+1];
			}
			flag=!flag;
		}
	}
	
	unsigned long long ans=0;
	for (int i=1;i<=N+1;i++)
		ans+=F[flag][i];
	cout<<ans<<endl;
	return 0;
}