2 条题解
-
0
#include<iostream> using namespace std; int main() { int n,w[1001],r[1001],b[1001],s[1001]; cin>>n; s[1]=2; s[2]=2; s[3]=4; w[3]=2; r[3]=2; b[3]=2; for(int i=4;i<=n;i++) { w[i]=r[i-1]+b[i-1]/2; r[i]=w[i-1]+b[i-1]/2; b[i]=r[i-1]+w[i-1]; s[i]=w[i]+r[i]; } cout<<s[n]; return 0; }
没有运用斐波那契数列 分别算出红白蓝开头的方案个数 w[i]=r[i-1]+b[i-1]/2; r[i]=w[i-1]+b[i-1]/2; b[i]=r[i-1]+w[i-1]; 因为条件2,所以b[i-1]/2 总个数w+r 举例n=4 b-1 w-2 r-3 b 1213 1232(开头为2时不成立) 1323 1312(开头为3时不成立)(故需除以2) w 2132 2312 2121 r 3123 3213 3131
- 1
信息
- ID
- 407
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 79
- 已通过
- 38
- 上传者