HDU 1041 递推 + 大数模板
来源:互联网 发布:linux安装vsftp 编辑:程序博客网 时间:2024/04/28 11:16
递推:0->10 ;
1->01;
00->1010;
10->0110;
01->1001;
11->0101;
1->01;
00->1010;
10->0110;
01->1001;
11->0101;
假设a[i]表示第i 步时候的00的个数,由上面的可以看到,00是由01 得到的,所以只要知道a[i-1]的01的个数就能够知道a[i]的00的个数了,那a[i-1]怎么求呢,同样看推导,01由1和00 得到,而第i步1的个数是2^(i-1),所以a[i]=2^(i-3)+a[i-2];
#include<iostream>#include<string>using namespace std;string add(string s1,string s2){ //大数 s1 + s2 if(s1.length()<s2.length()){string temp=s1;s1=s2;s2=temp; } for(int i=s1.length()-1,j=s2.length ()-1;i>=0;i--,j--){s1[i]=char(s1[i]+( j>=0 ? s2[j]-'0' : 0));if(s1[i]-'0'>=10) {s1[i]=char( (s1[i]-'0')%10+'0' );if(i) s1[i-1]++;else s1="1"+s1;} } return s1;}string f[1005];int main(){int n;f[1]="0"; f[2]="1"; f[3]="1"; f[4]="3"; f[5]="5"; f[6]="11";//f[i]=f[i-1]+2*f[i-2];for(int i=7;i<=1004;i++)f[i]=add( f[i-1], add(f[i-2],f[i-2]) ); while(scanf("%d",&n)==1) cout<<f[n]<<endl; return 0;}
- HDU 1041 递推 + 大数模板
- hdu 1041 打表:递推+大数 模板
- HDU 1041(递推+大数)
- HDU 1041 Computer Transformation 大数递推
- hdu1041Computer Transformation(递推+大数模板)
- hdu 1041 Computer Transformation(大数递推)
- HDU-1041-Computer Transformation,大数递推,水过~~
- hdu 4927 Series 1 递推+大数
- hdu 1041 Computer Transformation(递推+大整数模板*)
- hdu 1134 大数模板
- hdu 1297 Children’s Queue(递推+大数)
- 【大数递推】HDU 1297——Children’s Queue
- hdu 1297 Children’s Queue (大数加法+递推)
- HDU 5047 Sawtooth(大数优化+递推公式)
- hdu 1865 1sting (java大数&递推)
- HDU 1250 Hat's Fibonacci(递推+大数加法)
- HDU 1316 How Many Fibs?(递推,大数相加)
- hdu 1297 Children’s Queue 递推 大数
- Lucene查询的函数调用关系
- sharepoint2010开发之如何部署
- spring中的AOP和IOC
- 蝴蝶兰与鳞托菊
- ADB server didn't ACK问题解决方案
- HDU 1041 递推 + 大数模板
- One of the disks in this virtual machine is already in use by a virtual machine or by a snapshot"
- 【phpcms-v9】专题模块后台控制器special.php文件分析-添加专题
- js常用code
- Ten things we know to be true -- from Google
- vc的一些简单用法
- 蓝牙bug总结(未完待续)
- C语言--库
- SQLite学习笔记(11)命令行工具