Codeforces Round #651 (Div. 2) 参与排名人数14559
[codeforces 1369D] TediousLee 树上找规律
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址http://codeforces.com/contest/1369/problem/D
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
D - TediousLee | GNU C++17 | Accepted | 62 ms | 19300 KB |
题目大意:给定有n层的树,按规律生成的该树,在其中寻找爪子,若找到的爪子里的节点若全是绿色,将其染成黄色,统计染成黄色的节点数量。
数爪过程如下
寻找规律如下,可结合AC代码进行理解。
AC代码如下:
#include <stdio.h>
#define maxn 2000010
#define mod 1000000007
#define LL long long
LL a[maxn];
int main(){
int t,i,n;
a[1]=0,a[2]=0;
for(i=3;i<=2000000;i++){
a[i]=(a[i-1]+2*a[i-2])%mod;
if(i%3==0)a[i]=(a[i]+1)%mod;
}
scanf("%d",&t);
while(t--){
scanf("%d",&n);
printf("%lld\n",(a[n]*4)%mod);
}
return 0;
}