zoukankan      html  css  js  c++  java
  • hd acm2045

    LELE的RPG难题

    析:

    假设有N个方格时的涂法是F[N]种。当前边n-1个方格成立时,再加第n种颜色无影响,此时有F[N-1]种涂法,当n-1个方格违法时,即有两个相邻的格子颜色相同,则有n-2个颜色合法,即F[N-2],第N种颜色有两种,此时2*F[N-1];继续分析n-3,发现要么是与前边情况重复,要么不存在这种情况。综上,F[N]=F[N-1]+2*F[N-2]。

    代码:

    #include <stdio.h>
    #include <stdlib.h>

    int main()                                   //大数运算的套路。
    {
      int way[51][50]={0};
      int n,i,j;
      way[0][1]=3;
      way[1][1]=3;
      way[2][1]=6;
      way[3][1]=6;
      for(i=4;i<51;i++){
        for(j=1;j<50;j++){                                                             
          way[i][j]+=way[i-1][j]+2*way[i-2][j];
          way[i][j+1]+=way[i][j]/10000;
          way[i][j]%=10000;
        }
      }
      while(scanf("%d",&n)!=EOF){
        j=49;
        while(!way[n][j--]);
        printf("%d",way[n][j+1]);
        for(;j>0;j--){
          printf("%04d",way[n][j]);
        }
        printf(" ");
      }
    return 0;
    }

  • 相关阅读:
    mac允许安装任何来源的软件
    Xcode Edit Schemes
    认识下算法工程师
    一定要熟练地使用常用的Foundation服务
    常用的UI控件
    认识iOS系统架构
    深拷贝/浅拷贝的理解
    Create Fiori List App Report with ABAP CDS view – PART 1
    [転載]SAP S/4HANAトライアル環境でCDS Viewを確認
    ABAP CDS
  • 原文地址:https://www.cnblogs.com/clljs/p/7464892.html
Copyright © 2011-2022 走看看