南邮 OJ 1618 合法序列

合法序列

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 76            测试通过 : 23 

比赛描述

对于一个只由0,1,2组成的序列,要求该序列中不能有相邻的1。问对于给定长度N,满足条件的0,1,2序列共有多少种呢?




输入

第一行为一个整数Q,表示询问的次数。接下来Q行每行一个整数N(1<=N<=100)


输出

对于每个询问输出一个整数,表示满足题述条件的长度为N0,12序列的个数。

由于答案较大,因此将答案MOD 2011后再输出。


样例输入

2
1
2

样例输出

3
8

题目来源

NUPT




#include<iostream>
using namespace std;

int main(){
	int dp[101], i;
	int Q, N;
	dp[1] = 3;
	dp[2] = 8;
	for(i=3; i<101; i++){
		dp[i] = 2*(dp[i-1]+dp[i-2])%2011;
	}
	cin>>Q;
	while(Q--){
		cin>>N;
		cout<<dp[N]<<endl;
	}
}



你可能感兴趣的:(ACM,南邮OJ,合法序列)