HDU 1865
来源:互联网 发布:地震安全知识网络竞赛 编辑:程序博客网 时间:2024/06/15 21:41
1sting
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4190 Accepted Submission(s): 1584
Problem Description
You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or leave the ‘1’ there. Surly, you may get many different results. For example, given 1111 , you can get 1111, 121, 112,211,22. Now, your work is to find the total number of result you can get.
Input
The first line is a number n refers to the number of test cases. Then n lines follows, each line has a string made up of ‘1’ . The maximum length of the sequence is 200.
Output
The output contain n lines, each line output the number of result you can get .
Sample Input
311111111
Sample Output
128
观察规律 其实就是斐波那契数列 只是要考虑大数情况
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int d[202][3000]={0};int num[202]={0};int main(){ d[1][1]=1; d[2][1]=2; num[1]=num[2]=1;for(int i=3;i<=200;i++){int k=0;int j=0;for(j=1;j<=num[i-1];j++){d[i][j]=d[i-1][j]+d[i-2][j]+k;k=d[i][j]/10;d[i][j]%=10;}if(k){d[i][j]=k;num[i]=j;}else{num[i]=j-1;}} int t=0; int n=0; char x[202]; scanf("%d",&t); getchar(); while(t--) { scanf("%s",&x); n=strlen(x); for(int i=num[n];i>=1;i--) { printf("%d",d[n][i]); } printf("\n"); }return 0;}
0 0
- hdu-1865
- hdu 1865
- hdu 1865
- hdu 1865
- HDU 1865
- hdu 1865 && hdu 2955 (01背包)
- hdu 1865 1sting
- HDU 1865 1sting
- hdu 1865 1sting
- hdu 1865 1sting
- HDU-1865-1sting
- HDU 1865(大数)
- hdu 1865 1sting
- HDU-1865-1sting
- HDU 1865 1sting
- hdu 1865 1sting
- HDU 1865 1sting
- hdu
- test
- 获取视频帧图片
- 选择合适加密软件的6大要素
- 遗传算法_C语言
- 华为上机试题1(删除字符串中出现次数最少的字符)
- HDU 1865
- Android的NDK开发(5)————Android JNI层实现文件的read、write与seek操作
- 黑马程序员-------Java笔记--------多线程基础练习2题
- vs2010 error LNK2005
- kosaraju算法
- mysql 读写分离
- 文件操作篇(1.文件的创建)
- 配置virtio-scsi
- Redis C语言