zoukankan      html  css  js  c++  java
  • hdu1865 1sting

    http://acm.hdu.edu.cn/showproblem.php?pid=1865

    简单递推+大数。
        ans[n]=ans[n-1]+ans[n-2]。
       
    由于数字只有'1'和'2'这两种,那么当让第n
    位为1的时候,ans[n]加上ans[n-1];当让最后两位
    合并成2的时候,ans[n]加上ans[n-2](因为要保证
    倒数第二位一定是1)。
     
      算出来的ans就是一个斐波那契数列。

    View Code
     1 #include"stdio.h"   
     2 #include"string.h"   
     3 #include"stdlib.h"   
     4 #define N 211   
     5 #define M 33   
     6 int ans[N][M],len[N];  
     7 void init()  
     8 {  
     9     int i,l;  
    10     memset(len,0,sizeof(len));  
    11     memset(ans,0,sizeof(ans));  
    12     len[1]=len[2]=1;  
    13     ans[1][0]=1;  
    14     ans[2][0]=2;  
    15     for(i=3;i<=200;i++)  
    16     {  
    17         for(l=0;l<len[i-1];l++)  
    18         {  
    19             ans[i][l]+=ans[i-1][l]+ans[i-2][l];  
    20             ans[i][l+1]+=ans[i][l]/1000000;  
    21             ans[i][l]%=1000000;  
    22         }  
    23         len[i]=len[i-1];  
    24         if(ans[i][len[i]])  len[i]++;  
    25     }  
    26 }  
    27 int main()  
    28 {  
    29     init();  
    30     int T;  
    31     int l,L,i,j;  
    32     char str[211];  
    33     scanf("%d",&T);  
    34     while(T--)  
    35     {  
    36         scanf("%s",str);  
    37         L=strlen(str);
    38     
    39         printf("%d",ans[L][len[L]-1]);  
    40         for(l=len[L]-2;l>=0;l--) printf("%06d",ans[L][l]);  
    41         printf("\n");  
    42     }  
    43     return 0;  
    44 }  
  • 相关阅读:
    hadoop使用FAQ
    kerberos在rehl6和7不兼容问题
    zookeeper使用场景
    临时记录
    SecureCRT远程工具
    jdk 环境安装
    等效
    lnmp安装及nagios
    svn的安装使用
    用户在乎的事
  • 原文地址:https://www.cnblogs.com/zlyblog/p/3051637.html
Copyright © 2011-2022 走看看