uva 12333 Revenge of Fibonacci code2
来源:互联网 发布:如何做数据迁移 编辑:程序博客网 时间:2024/05/22 12:16
题目:Revenge of Fibonacci
题意:输入一串斐波拉契数的前缀,求包含这个前缀的最小斐波拉契数的编号。
本题基于数组(vector)的做法
这是我用指针重新写了一遍的代码,总体要慢那么一点儿,思路没有区别。
#include<cstdio>#include<iostream>#include<string>#include<vector>#include<set>#include<map>#include<algorithm>#include<cmath>#include<queue>using namespace std;struct NODE{int x;NODE *son[10];NODE(){x=-1;for(int i=0;i<=9;i++){son[i]=NULL;}}};NODE *root=new NODE();string f[100005];void make(int i,string& str){string a=f[i-2],b=f[i-1];if(a.size()<b.size()){a="0"+a;}bool Add=false;int Size=a.size()-1;for(int j=min(Size,50);j>=0;j--){int x=a[j]-'0'+b[j]-'0'+Add;if(x>=10) x%=10,Add=true;else Add=false;str=(char)(x+'0')+str;}if(Add==true) str="1"+str;}void add(int id,string& str){NODE *now=root;for(int i=0;i<str.size();i++){int x=str[i]-'0';if(now->son[x]==NULL){now->son[x]=new NODE();}now=now->son[x];if(now->x==-1) now->x=id;}}int find(string str){NODE *now=root;for(int i=0;i<str.size();i++){int x=str[i]-'0';now=now->son[x];if(now==NULL) return -1;}return now->x;}int main() {f[0]=f[1]="1";add(1,f[1]);for(int i=2;i<100000;i++){make(i,f[i]);add(i,f[i]);}int m,T=0;scanf("%d",&m);while(++T&&T<=m){string x;cin>>x;int y=find(x);if(x=="1") y=0;printf("Case #%d: %d\n",T,y);}return 0;}
阅读全文
2 0
- uva 12333 Revenge of Fibonacci code2
- UVa 12333 - Revenge of Fibonacci
- UVA 12333 Revenge of Fibonacci
- uva 12333 Revenge of Fibonacci
- HDU 4099/UVA 12333 Revenge of Fibonacci
- 12333 - Revenge of Fibonacci
- UVa 12333 - Revenge of Fibonacci <大数 字典树>
- UVa 12333 – Revenge of Fibonacci [大数+字典树]
- UVa 12333 - Revenge of Fibonacci (大数 + 字典树)
- UVa 12333 - Revenge of Fibonacci(高精度计算+字典树)
- HDU4099 Revenge of Fibonacci
- UVa12333 - Revenge of Fibonacci
- UVA12333--Revenge of Fibonacci
- UVa 12333 - Revenge of Fibonacci(字典树+高精度压位)
- Uva 12333 Revenge of Fibonacci (字典树 + 大数加法运算)
- HDU 4099 Revenge of Fibonacci
- hdu 4099 Revenge of Fibonacci
- HDU 4099 Revenge of Fibonacci
- 更改PopupMenu的文字颜色大小
- 2017 Android开发你必须知道的开源框架
- 分页插件
- NET 修改域账户过期密码
- 从送外卖到建站售主机还有共享自行车说起-2017年8月江西IDC排行榜与发展报告
- uva 12333 Revenge of Fibonacci code2
- Java 集合ListSet
- 你如何对网站的文件和资源进行优化?
- 自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)
- 在mainwindow中通过代码添加控件
- hihocoder1014 Trie树
- Linux操作系统错误代码中英对照解释
- C/C++静态代码检查工具
- Python __name__ == '__main__'的作用