UVa 11549 Calculator Conundrum (模拟+Floyd判环)
来源:互联网 发布:video.js点击全屏播放 编辑:程序博客网 时间:2024/05/18 03:39
UVa 11549 Calculator Conundrum
题目大意:
给一个长度为n位的计算器,初始数是k,不断对其进行平方.若溢出,只保留前n位(从最高位开始),求得到的最大数是多少.
题目分析:
将数反复平方,肯定会出现相同数,那么出现相同数时就可以停止,问题在于如何判断是否形成环.可以选择使用set或者hash判断,但是空间规模比较大,那么可以选择采用Floyd判环算法.试想,两个人绕着操场跑步,A速度为1,B速度为2,若不存在环,AB不会相遇;若存在环,当A,B相遇时B恰巧比A多跑1圈,此时也就可以停止循环.
代码:
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;int buf[50];int go(int n,int k)//k平方之后的数 { if(k==0) return 0; ll k2=(ll)k*k; int L=0; while(k2>0) buf[++L]=k2%10,k2/=10; int ret=0; for(int i=L;i>L-n;i--) ret=ret*10+buf[i]; return ret;}int main(){ int T; scanf("%d",&T); while(T--) { int n,k; scanf("%d%d",&n,&k); int k1=k,k2=k,ans=k; do {//Floyd判环,可以理解为k1速度为1,k2速度为2,那么当k1==k2的时候存在环,k2恰巧比k1多跑一圈 k1=go(n,k1); k2=go(n,k2);ans=max(ans,k2); k2=go(n,k2);ans=max(ans,k2); }while(k1!=k2); printf("%d\n",ans); } return 0;}
0 0
- UVa 11549 Calculator Conundrum (模拟+Floyd判环)
- UVA 11549 Calculator Conundrum Floyd判圈
- UVA 11549-Calculator Conundrum-floyd判重
- UVA Calculator Conundrum 11549 (Floyd判环&数学&高效)
- UVA 11549 Calculator Conundrum (Floyd判圈算法)
- UVa 11549 Calculator Conundrum / floyd判圈算法
- UVA 11549 Calculator Conundrum (Floyd判圈算法)
- uva 11549 Calculator Conundrum(floyd判圈)
- floyd判圈算法 (UVA 11549 - Calculator Conundrum)
- UVA 11549 Calculator Conundrum Floyd判圈算法 .
- UVA 11549 Calculator Conundrum Floyd判圈算法 Brent判圈算法 相关性质及证明
- uva 11549 - Calculator Conundrum 模拟
- UVa 11549 Calculator Conundrum 解题报告(判环)
- 【set&&sstream||floyed判环算法】【UVa 11549】Calculator Conundrum
- UVA - 11549 Calculator Conundrum (循环节)(Floyd判圈算法,快慢指针)
- uva 11549 - Calculator Conundrum (Floyd判圈法)
- UVA 11549 - Calculator Conundrum Floyd判圈法
- Uva 11549 CALCULATOR CONUNDRUM (floyd 判圈法)
- leetcode_169(主元素查找)
- 【STM32】STM32之蓝牙透传模块(迅通科技PTR5518)
- mysql索引详解
- POJ 3262 (贪心)
- 一个很详细的RxJava讲解,一看就懂
- UVa 11549 Calculator Conundrum (模拟+Floyd判环)
- 代码路上的自省
- PHP设计模式系列 - 装饰器
- zeromq 中的 zmq_bind
- WPF 无边框拖动
- rocketmq consume学习笔记
- zeromq 中的 zmq_close
- MySQL中的binlog相关命令和恢复技巧
- MyBatis Generator自动生成实体代码