《算法竞赛-训练指南》第一章-1.19_UVa 11549
来源:互联网 发布:ipad版淘宝怎么开店 编辑:程序博客网 时间:2024/06/06 10:52
这是道比较简单的题目,主要就是hash范围大,自己没有办法解决,但其实也是可以解决的,用map,或者什么的,都可以解决,但是自己就是没有好好的去想。
简单的hash大数据,如果是key是int类型的话,直接用个set表就行。
然后其余的处理其实真的很简单。但就是自己不努力思考导致的。
简单的介绍下这道题目的意思:一个旧电脑,屏幕只能显示N个数字,现在给你一个数字,每次求平方,溢出就只要最大的前N位,继续平方,问你,求得的最大的N位数字是多大。
很简单,不过就是hash的时候可能出些问题,但那都是小问题。然后就是方法的选取,题解中给了一个Floyd法判圈,这个算法题解是这样解释的。有两个小孩子比赛跑步,一个小孩子比另一个小孩跑的快,如果有环的话快的小孩就肯定能够追赶上慢的小孩,两者就相遇了。
但是其实有个这么个问题,我们应该使快的小孩的速度多快呢?是越快越好么?答案肯定不是的,事实上,笔者编程验证了,也不是这样的,当然你如果举一个很大的环,很大很大,那确实速度快的确实好,但是对于计算机来说,你的足够大,得很大很大才能体现出快,而且速度快,相遇可就难了,有时候一圈跑下来,没有相遇,那不就完蛋了么?(相遇规定为,小孩正好跑完完整的速度,即加入3M/s,你就得最少跑完3M之后再谈论相遇)
这个思想好,好在我之前没有接触过,现在接触到了。
贴出代码:
#include <stdio.h>#include <string.h>#include <iostream>#include <string>using namespace std;int N, K;int next(int k){long long ans = (long long)k * k;int buf[22];int cnt = 0;while (ans){buf[cnt++] = ans % 10;ans /= 10;}int L = cnt - 1;if (cnt > N){cnt = N;}int sum = 0;for (int i = 0; i < cnt; i++){sum = sum * 10 + buf[L--];}return sum;}int main(){int T;scanf("%d", &T);while (T--){scanf("%d%d", &N, &K);int k1 = K;int k2 = K;int ans = K;do{k1 = next(k1);k2 = next(k2);if (ans < k2){ans = k2;}k2 = next(k2);if (ans < k2){ans = k2;}} while (k1 != k2);printf("%d\n", ans);}//system("pause");return 0;}
- 《算法竞赛-训练指南》第一章-1.19_UVa 11549
- 《算法竞赛-训练指南》第一章-1.19_UVa 11549
- 《算法竞赛-训练指南》第一章-1.5_UVa 10881
- 《算法竞赛-训练指南》-第一章-1.10_UVa 11384
- 《算法竞赛-训练指南》第一章-1.17_UVa 11462
- 《算法竞赛-训练指南》第一章-1.28_UVa 10891
- 《算法竞赛-训练指南》第二章-2.1_UVa 11538
- 《算法竞赛-训练指南》第二章-2.2_UVa 11401
- 《算法竞赛-训练指南》第二章-2.3_UVa 11806
- 《算法竞赛-训练指南》第二章-2.5_UVa 11361
- 《算法竞赛-训练指南》第二章-2.9_UVa 11426
- 《算法竞赛-训练指南》第二章-2.14_UVa 11021
- 《算法竞赛-训练指南》第二章-2.15_UVa 11722
- 《算法竞赛-训练指南》-第二章-2.16_UVa 11427
- 《算法竞赛-训练指南》-第二章-2.18_UVa 10294
- 《算法竞赛-训练指南》第二章-2.26_UVa 10341
- 《算法竞赛-训练指南》第三章-2.2_UVa 11991
- 《算法竞赛-训练指南》第三章-3.8_UVa 11235
- Google C++ Mocking Framework for Dummies 翻译
- 男人八题系列
- 监控 esxi 虚拟机
- java中操作数组的常用工具类
- 从头到尾彻底解析Hash表算法
- 《算法竞赛-训练指南》第一章-1.19_UVa 11549
- 一、我的emacs配置--适用c/c++和python开发(https://github.com/pein0119/emacs.d)
- HDU1847:Good Luck in CET-4 Everybody!
- 第一篇
- uva10098 Generating Fast, Sorted Permutation
- java6与java5的区别
- [037] 微信公众帐号开发教程第13篇-图文消息全攻略
- 十道海量数据处理面试题与十个方法大总结
- uva729 The Hamming Distance Problem