UVa 11549 Calculator Conundrum
大白书里面的题感觉就是没有什么固定的思路,只能认真理解学习汝佳大大的代码。
这里用的Floyd判圈法,就像插图里面的一样,两个小孩,一个快一个慢,如果实在一个环形跑道,那么快的那个最终一定会“追上”慢的那个。
明显这里还是有重复计算的部分,但相对其他算法来说还是比较高效的吧,我猜。。
6s的题居然只用了0.5s,Orz
1 //#define LOCAL 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 using namespace std; 6 7 int buf[100]; 8 9 int next(int n, int k) 10 { 11 if(k == 0) 12 return 0; 13 long long k2 = (long long)k * k; 14 int L = 0; 15 while(k2 > 0) 16 { 17 buf[L++] = k2 % 10; 18 k2 /= 10; 19 } 20 if(L < n) 21 n = L; 22 int ans = 0; 23 for(int i = 0; i < n; ++i) 24 ans = ans * 10 + buf[--L]; 25 return ans; 26 } 27 28 int main(void) 29 { 30 #ifdef LOCAL 31 freopen("11549in.txt", "r", stdin); 32 #endif 33 34 int T; 35 scanf("%d", &T); 36 while(T--) 37 { 38 int n, k; 39 scanf("%d%d", &n, &k); 40 int ans = k; 41 int k1, k2; 42 k1 = k2 = k; 43 do 44 { 45 k1 = next(n, k1); 46 k2 = next(n, k2); 47 if(k2 > ans) 48 ans = k2; 49 k2 = next(n, k2); 50 if(k2 > ans) 51 ans = k2; 52 }while(k2 != k1); 53 printf("%d\n", ans); 54 } 55 return 0; 56 }
代码君
转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/3887239.html
UVa 11549 Calculator Conundrum相关推荐
- UVA 11549 Calculator Conundrum
原文请訪问我的博客:http://xiaoshig.sinaapp.com/?p=115 Alice got a hold of an old calculator that can display ...
- UVA 11549 Calculator Conundrum
很容看出来,一直平方又只取前面n位会构成循环,所以可以模拟,判重的话就用hash #include <iostream> #include <cstdio> #include ...
- UVa 11549 Calculator Conundrum (训练指南,Floyd 判圈算法)
算法竞赛训练指南, 42 页 注意: 1. 用数组来记录一个数的各位的数字 2. 快慢指针来记录链表环的入点(Floyd 判圈算法) #include <cstdio> #include ...
- UVA 11549 Calculator Conundrum 题解
题解: 题目暗示了计算机显示出的数将出现循环,最直接的方式是一个一个的模拟,并判断新得到的数字是否出现过.最简单的方式是通过数组记录已经出现过的数字,然而题目中 0<=k<=10^9 范围 ...
- UVa 11549 - Calculator Conundrum
題目:計算k^2^m中,前n位構成的最大數字. 分析:數論,循環.找尋環節不斷的計算k^2^m和k^4^m相等時即為循環節. 說明:也可以使用map檢測循環╮(╯▽╰)╭. #include < ...
- UVA之11549 - Calculator Conundrum
[题目] Problem C CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can displayndigits. S ...
- UVA 11549 calcular conundrum 计算机老谜题
题目大意 用一个老式计算器,只显示n位数字,输入一个整数k后计算,计算器会反复平方,直至溢出,每次溢出只显示最高的n位,计算器会一直平方下去,直到出现重复的数字 分析 题目中已经暗示了计算器显示的数会 ...
- Calculator Conundrum UVA - 11549(floyd判圈)
Calculator Conundrum UVA - 11549 题意: 给你一个n和k. 每次操作可以把k平方,之后取k*k的前n位 为 k. 思路: 首先可以想到,经过有限次操作后,会出现循环. ...
- UVA 11549 模拟 Floyed判圈法的应用 Calculator Conundrum
此题很容易想到会出现环,那么就可以想到用map来判重,但是此题还有一种更加优越的所需空间复杂度为o(1)的算法 . #include<cstdio> #include<iostrea ...
最新文章
- linux中添加PHP的mongoDB支持扩展
- 使用ImageMagick 在图片上绘制粗斜体的中文也许是一个错误。
- 亚马逊训练alexa的方法_Alexa对话是AI驱动的对话界面新方法
- python连接postgresql数据库
- ca开头的车是什么牌子_微电调研 | 把高速车摘了牌子当低速车卖还很普遍
- Redis进阶实践之十六 Redis大批量增加数据
- c++位运算_最全位运算总结
- 天锐绿盾加密软件常见问题解决方案
- 传奇修改map地图教程_传奇服务端内NPC添加MAP地图说明
- 云队友丨巴菲特是怎样炼成的?两万字长文深度起底股神的传奇人生
- 贯彻落实83号文,超图“互联网+不动产”再升级
- Excel 2010 SQL应用066 返回数字与文本混杂的数据
- 蓝雪花怎么养 蓝雪花养殖方法及注意事项
- 攻防演练场景中的加密流量检测技术
- java.lang.IllegalArgumentException: Not an managed type
- 【MySQL·水滴计划】第三话- SQL的基本概念
- mysql免安装版安装教程
- S7-200 PC ACCESS关于“An error has occured”的错误解决指南合集
- 为什么你的简历没人看?7份案例分析(收藏)
- Win10远程连接,出现身份验证错误。远程计算机要求的函数不受支持 这可能是由于CredSSP加密Oracle修正 。
热门文章
- 怎么用PHP建立购物网站,如何使用PHP建设一个购物网站
- 安装JAVA8要登录_JDK8的安装及环境配置
- NXP KW38蓝牙开发(一)入门第一课:官网蓝牙广播和连接例程,NMI禁止
- “精彩极了”和“糟糕透了”
- centos 多个mysql数据库_CentOS6.5 一台服务器同时安装多个Mysql数据库
- 【C++grammar】代理构造、不可变对象、静态成员
- python 生成器表达式_Python中的列表理解与生成器表达式
- php的create_function、function_exists判断函数是否存在
- 如何禁用win7的ASLR
- No module named 'Tkinter'