寒假学习
这道题为递推题
仔细观察可以得到递推公式
用法f[i]表示长度。
因为题目要求只输出后四位,所以当某个值超过四位数可以对其取模,避免最后取模是答案已经超出数据范围。
#include<iostream>
#include<cstdio>
using namespace std;
long long int f[1000005],e[1000005];
long long int k;
int main(){
cin>>k;
f[0]=1;f[1]=1;f[2]=2;f[3]=5;
e[0]=1;e[1]=2;e[2]=4;e[3]=9;
for(int i=4;i<=k;i++){
f[i]=f[i-1]+f[i-2]+2*e[i-3];
f[i]=f[i]%10000;
e[i]=e[i-1]+f[i];
e[i]=e[i]%10000;
}
cout<<f[k]%10000;
}