比赛 |
20111108 |
评测结果 |
AAAWWWWWWW |
题目名称 |
分裂 |
最终得分 |
30 |
用户昵称 |
Makazeu |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-08 11:11:33 |
显示代码纯文本
#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;
}