UVA 11549 模拟 Floyed判圈法的应用 Calculator Conundrum
来源:互联网 发布:ubuntu 查看32 64 编辑:程序博客网 时间:2024/06/07 09:37
此题很容易想到会出现环,那么就可以想到用map来判重,但是此题还有一种更加优越的所需空间复杂度为o(1)的算法 。
#include<cstdio>#include<iostream>#include<map>#include<cmath>using namespace std;typedef long long LL;map<int,int> dic;int wei[10],tot,fans,n,k,T;inline int Next(int n,int k){ LL tmp = (LL)k*k; int d = log10(tmp)+1; int ans; if(d>n)ans = tmp / wei[d-n]; else ans = tmp; return ans;}/*int main(){ freopen("a.in","r",stdin); scanf("%d",&T); wei[1]=10; for(int i=2;i<=9;i++)wei[i]=wei[i-1]*10; while(T--) { scanf("%d%d",&n,&k); dic.clear();tot=fans=0; while(dic[k]==0){ dic[k]=++tot; if(k>fans)fans=k; k=Next(n,k); } printf("%d\n",fans); } return 0;}*///Floyed判圈算法,空间复杂度降到O(1)//假象有两个小孩在一个有环的跑道上赛跑,其中一个小孩的速度是另一个小孩速度的两倍,跑得快的小孩一定能都追上跑的慢的小孩,根据这一点设计判圈的算法。int main(){ freopen("a.in","r",stdin); scanf("%d",&T); wei[1]=10; for(int i=2;i<=9;i++)wei[i]=wei[i-1]*10; while(T--) { scanf("%d%d",&n,&k); int ans = k; int k1 = k,k2 = k; do{ //小孩1每次走一步 k1 = Next(n,k1); //小孩2每次走两步 k2 = Next(n,k2);if(k2>ans)ans = k2; k2 = Next(n,k2);if(k2>ans)ans = k2; }while(k1!=k2); //两小孩相遇,即为圈 printf("%d\n",ans); } return 0;}
0 0
- UVA 11549 模拟 Floyed判圈法的应用 Calculator Conundrum
- uva 11549 - Calculator Conundrum 模拟
- uva 11549 Calculator Conundrum(Floyd 判圈法 和 stringstream的应用)
- 【set&&sstream||floyed判环算法】【UVa 11549】Calculator Conundrum
- uva 11549 - Calculator Conundrum(模拟)
- UVa 11549 - Calculator Conundrum(模拟)
- Uva-11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- Uva-11549-Calculator Conundrum
- uva 11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- uva 11549 CALCULATOR CONUNDRUM
- UVA 11549 Calculator Conundrum
- UVa 11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- UVA 11549 Calculator Conundrum
- UVA - 11549 Calculator Conundrum
- UVA-11549 Calculator Conundrum
- 智能聊天机器人实现(源码+解析)
- ibatis学习(3)接口SqlMapClient (2)其他函数
- Java面试题十二(数据库专题)
- zoj 3818 Pretty Poem
- 在xcode5中修改整个项目名
- UVA 11549 模拟 Floyed判圈法的应用 Calculator Conundrum
- Android:键盘挡住输入框解决办法
- POJ 3225——Help with Intervals(线段树,成段替换+区间异或+hash)
- Pygame 打方块
- DirectX 9.0c游戏开发手记之RPG编程自学日志之4: Preparing for the Book (准备工作)(下)
- iOS 修改SearchBar的Textfiled的Cursor游标颜色和字体样式和大小;Disable输入框
- vi 基本常用命令
- 第一个Shell程序
- 博客的第一天