Description
Input
Output
Sample Input
Sample Output
Hint
We can see when the length equals to 4. We can have those chains: 0000,0001,0010,0011 0100,0110,0111,1000 1001,1100,1110,1111
有一串由n个珠子连成的链 每个珠子的标号只能是 0或1 求总共有多少种不同的排列
一开始还在想是不是要用到位运算 没想到竟然是递推= =
#include<cstdio> #include<iostream> #include<bitset> #include<algorithm> using namespace std; int a[10000+10]; int main() { int n; int i,j; a[0]=1; a[1]=2; a[2]=4; a[3]=7; a[4]=12; for(i=5;i<=10000;i++) { a[i]=(a[i-1]+a[i-2]+a[i-4])%9997; } while(scanf("%d",&n)!=EOF) { if(n==-1) break; printf("%d\n",a[n]); } return 0; }
原文:http://www.cnblogs.com/sola1994/p/4074260.html