uva11549 - Calculator Conundrum(计算机谜题)
来源:互联网 发布:法国进出口数据 编辑:程序博客网 时间:2024/06/05 18:03
这个题是数组是不行的,因为k的范围太大。所以我们可以用stl或着哈希判重
这两者空间开销较大,
这里刘汝佳介绍了一种空间开销小且速度也不错的方法,
就是Floyd判圈算法,
假设有两个小孩子在一个可以无限向前跑的的跑道上赛跑。同时出发,但其中一个小孩的速度是另一个的两倍。如果跑道是直的,跑得快的小孩永远在前面;但如果有环,则跑得快的小孩将追上跑得慢的小孩。
代码如下:
#include <cstdio>int buf[10];int next(int n, int k){ int ans = 0; if(!k) return 0; long long k2 = (long long)k*k; int l = 0; while(k2>0){ buf[l++] = k2%10; k2/=10;} if(n>l) n = l; for(int i = 0; i < n; i++) ans = ans*10+buf[--l]; return ans;}int main (){ int t, n, k; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); int ans = k; int k1 = k, k2 = k; do { k1 = next(n,k1); ans = ans>k1?ans:k1;//小孩1 k2 = next(n,k2); ans = ans>k2?ans:k2;//小孩2第一步 k2 = next(n,k2); ans = ans>k2?ans:k2;//小孩2第二步 }while(k1!=k2); printf("%d\n",ans); } return 0;}
- uva11549 - Calculator Conundrum(计算机谜题)
- Calculator Conundrum UVa11549
- UVA11549 Calculator Conundrum
- uva11549 - Calculator Conundrum
- UVa11549 - Calculator Conundrum (Floyd判圈法)
- uva11549 Calculator Conundrum【解法一】
- uva11549 Calculator Conundrum【解法二】
- 算法竞赛入门经典训练指南 例题1-19 计算器谜题 Calculator Conundrum uva11549
- UVa11549 - Calculator Conundrum(Floyd判圈算法)
- uva11549计算机谜题
- CALCULATOR CONUNDRUM
- Calculator Conundrum
- UVA11549 计算机谜题(Floyd判圈算法)
- UVA11549计算器谜题
- Uva-11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- Uva-11549-Calculator Conundrum
- uva 11549 - Calculator Conundrum
- How can I access my Wubi root.disk data
- 计算字符串的相似度
- 5、backbone中的Router实例
- POI操作Excel出错:java.lang.IncompatibleClassChangeError
- 三个相同的字组成重字读法
- uva11549 - Calculator Conundrum(计算机谜题)
- 黑马程序员--java IO流(一)
- JAVA设计模式二:--Abstract Factory(抽象工厂)
- POJ_3415 Common Substrings 后缀数组
- struts的工作原理
- S3C6410处理器介绍
- 详解FusionChart图表控件点击事件
- MFC内存泄露与检测
- SQLite3介绍及使用方法