
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3485
分析: a[i]表示长度为i,第i位为0的,符合情况的个数。
b[i]表示长度为i,第i位为1的,符合情况的个数。
c[i]表示符合情况的答案。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#define LL long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define N 50010
using namespace std;
int a[],b[],c[];
void init()
{
c[]=;c[]=;b[]=;b[]=;
for(int i=;i<=;i++)
{
a[i]=c[i-];
b[i]=(c[i-]-b[i-]+)%;
c[i]=(a[i]+b[i])%;
}
}
int main()
{
int n;
init();
while(scanf("%d",&n)>)
{
if(n==-)break;
printf("%d\n",c[n]);
}
}