zoukankan      html  css  js  c++  java
  • [蓝桥杯][2013年第四届真题]格子刷油漆

    时间限制: 1Sec 内存限制: 128MB 提交: 13 解决: 3

    题目描述
    X国的一段古城墙的顶端可以看成  2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆。 


    你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!) 
    比如:a  d  b  c  e  f  就是合格的刷漆顺序。 
    c  e  f  d  a  b  是另一种合适的方案。 
    当已知  N  时,求总的方案数。当N较大时,结果会迅速增大,请把结果对  1000000007  (十亿零七)  取模。 

    输入
    输入数据为一个正整数(不大于1000) 
    输出
    输出数据为一个正整数。
    样例输入
    3 
    样例输出
    96

    #include<cstring>
    #include<iostream>
    #include<cstdio>
    #define Mod 1000000007
    using namespace std;
    const int maxn = 1001;
    long long d[maxn],A[maxn];
    int main(void)
    {
        int n;
        cin >> n;
        d[1]=1,d[2]=2;
        A[1]=1,A[2]=6;
        if(n==1)
        {
            printf("2");
            return 0;
        }
        for(int i=3;i<=n;i++) d[i]=d[i-1]*2%Mod;
        for(int i=3;i<=n;i++) A[i]=(2*A[i-1]+4*A[i-2]+d[i])%Mod;
        long long sum=0;
        sum+= 4*A[n]%Mod;
        for(int i=2;i<n;i++) 
        {
            sum+=2*(2*d[i-1]*2*A[n-i]%Mod + 2*d[n-i]*2*A[i-1]%Mod)%Mod;
            sum%=Mod;
        }
        printf("%lld",sum);
        return 0;    
    } 
    View Code
  • 相关阅读:
    iOS 上线流程
    静态库和动态库的区别
    iOS如何生成.a文件
    苹果公司软件
    iOS 的主要框架
    多线程图解
    判断屏幕横屏/竖屏
    最大堆构建和堆排序
    hadoop2.6.0 + hbase-1.0.0 伪分布配置
    centos6 名字服务dnsmasq配置
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8863838.html
Copyright © 2011-2022 走看看