floyd判圈算法
2015-09-23 21:56
183 查看
floyd判圈算法,很有意思的一个小技巧!两个人赛跑,在直线上,快的人会越来越远,而如果在圈中,快的人会追上慢的人。这点值得利用!比如,要处理某种问题,跟循环有关,当然我们可以记录每个数据,这肯定会跟占用内存。如果我们用floyd算法,一个是另一个渐变速度的两倍,那这样就能很好的判断循环的某些特性,很有意思。
void solve() { read_case(); int ans = k; int count = 0; int k1 = k, k2 = k; do { k1 = next(n, k1); k2 = next(n, k2); if(k2 > ans) ans = k2; k2 = next(n, k2); if(k2 > ans) ans = k2; //count++; //算出循环节 }while(k1 != k2); printf("%d\n", ans); //printf("%d\n", count); }
相关文章推荐
- git学习笔记
- 作业调度算法
- 十一、行为型模式之模板方法、职责链、策略-----《大话设计模式》
- java21 封装Response:
- uva 10615 - Rooks(完美匹配)
- 软件工程导论第一章第七题
- 点击事件应该注意的小细节
- c语言编译过程!!!
- ExtJS4 MVC开发教程:搭建开发环境
- java20 创建服务器:ServerSocket
- Android开发环境的离线安装方式(超易搭建秘籍)
- 47 Permutations II
- VS2008将原有的tab空格设置为空格符号
- java19 先开服务器,再开客户端
- springMVC(14) springMVC+spring+hibernate增删改查实例
- 源码解析: Imread函数
- ACM学习资源
- 【iOS】KVC 和 KVO 的使用场景
- hdu4430 Yukari's Birthday 2012 ACM_ICPC Asia ChangChun Regional Contest problem K
- java面试题集锦(二)