码迷,mamicode.com
首页 > 其他好文 > 详细

CF1369D-TediousLee【找规律】

时间:2020-06-25 19:56:04      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:统计   return   main   --   print   line   图形   space   mes   

题意:

给定有 \(n\) 层的树,按规律生成的该树,在其中寻找爪子,若找到的爪子里的节点若全是绿色,将其染成黄色,统计染成黄色的节点数量。

分析:

找规律:
如图(来源于:https://blog.csdn.net/mrcrack/article/details/106938912
技术图片
技术图片

所以:

\[f[n]=f[n-1]+2*f[n-2]+(i\%3==0?1:0) \]

自己找的时候,过分注重于在一个图中推公式,没有去考虑图形前后的联系。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
const int N=2e6+6;
ll f[N];
void init()
{
    f[1]=0;
    f[2]=0;
    f[3]=1;
    f[4]=1;
    for(int i=5;i<=2e6;i++)
    {
        f[i]=(f[i-1]+2*f[i-2])%mod;
        if(i%3==0) f[i]=(f[i]+1)%mod;
    }
}
int main()
{
    int t,n;
    scanf("%d",&t);
    init();
    while(t--)
    {
        scanf("%d",&n);
        printf("%lld\n",f[n]*4%mod);
    }
    return 0;
}

CF1369D-TediousLee【找规律】

标签:统计   return   main   --   print   line   图形   space   mes   

原文地址:https://www.cnblogs.com/1024-xzx/p/13192476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!