HDU 1316 大数二分
来源:互联网 发布:备份数据怎么恢复 编辑:程序博客网 时间:2024/06/04 23:23
建素数表 二分查找 练手用了。。
#include "stdio.h"#include "string.h"int f[5010][1010];int pk(int a[],int b[]){ int i; if (a[0]>b[0]) return 1; if (a[0]<b[0]) return -1; for (i=a[0];i>=1;i--) { if (a[i]>b[i]) return 1; if (a[i]<b[i]) return -1; } return 0;}int fi(int x[],int op){ int l,r,mid,key; l=1;r=5000; while (l<=r) { mid=(l+r)/2; key=pk(x,f[mid]); if (key==1) l=mid+1; else if (key==-1) r=mid-1; else return mid; } if (op==1) return l; if (op==2) return r;}int main(){ int i,j,lea,leb,keya,keyb; int a[1201],b[1201]; char stra[1201],strb[1201]; memset(f,0,sizeof(f)); f[1][0]=f[1][1]=f[2][0]=f[2][1]=1; for (i=3;i<=5000;i++) { for (j=1;j<=f[i-1][0];j++) f[i][j]=f[i-1][j]+f[i-2][j]; f[i][0]=f[i-1][0]; for (j=1;j<=f[i][0];j++) { f[i][j+1]+=f[i][j]/10; f[i][j]%=10; } if (f[i][f[i][0]+1]!=0) f[i][0]++; } // printf("%d\n",f[5000][0]); while (scanf("%s",stra)!=EOF) { scanf("%s",strb); if (stra[0]=='0' && strb[0]=='0') break; if (stra[0]=='0') stra[0]='1'; a[0]=lea=strlen(stra); b[0]=leb=strlen(strb); for (i=0;stra[i];i++) a[lea-i]=stra[i]-'0'; for (i=0;strb[i];i++) b[leb-i]=strb[i]-'0'; keya=fi(a,1); keyb=fi(b,2); printf("%d\n",keyb-keya+1); } return 0;}
0 0
- HDU 1316 大数二分
- HDU 1316(大数比较+二分)
- hdu 1316 How Many Fibs?(大数,二分)
- HDU 1316 How Many Fibs?(二分查找+大数加法)
- HDU 1316 大数
- HDU-5973 Game of Taking Stones(大数+二分求精度)
- hdu-1316 大数类模板
- hdu 1316 二分+高精度
- hdu1316 斐波纳契 大数 二分
- hdu 1316 How Many Fibs?【JAVA大数】
- HDU 1316 How Many Fibs? 大数
- HDU-1316 How Many Fibs?(Java大数)
- [hdu 5592 ZYB's Premutation] 树状数组+二分 求第K大数
- 【java 大数】hdu java 大数
- poj 2109 二分+大数乘法
- HDU 1002 --大数问题
- HDU 1297 (大数)
- hdu 1063 Exponentiation(大数)
- get_called_class — 后期静态绑定("Late Static Binding")类的名称
- 判断是否支持创建某组件对象
- RabbitMQ消息队列(五):Routing 消息路由
- MVC设计模式含义和优点
- Java中ArrayList类详解
- HDU 1316 大数二分
- net-snmp的片段源码分析
- 抽象方法
- ycsb与hbase的合作
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
- asp操作excel大全
- PAR DAR SAR 详解 以及一些疑问
- OpenCV浅析及相关资源
- PBX、FXO、FXS等通信相关知识