http://noi.openjudge.cn/ch0202/1788/
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
#include <cmath>
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
#define MAX 1000001
int dp[MAX]={0};
int f(int n)
{
if(n==1||n==2) return n;
if(dp[n]!=0) return dp[n]%32767;
dp[n]=(2*f(n-1)%32767 +f(n-2)%32767)%32767;
return dp[n];
}
int main()
{
//freopen("input.txt","r",stdin);
int n,m;
//memset(dp,-1,sizeof(dp));
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>m;
cout<<f(m)<<endl;
}
}
return 0;
}