UVA100
2016-03-10 12:39
183 查看
vim粘贴到系统剪贴板, ubuntu apt-get install vim,这样安装的版本vim-base没有+寄存器(“+y),卸载,重装
vim全选复制:ggVG(gg回到首行首列,V行选中模式,G定位文档末尾)
cpp代码
代码中的 loopLength_speedup() 用来查找之前已经计算过的数字,如果之前计算过,就不用再计算,直接从map里面取结果就好了.
vim全选复制:ggVG(gg回到首行首列,V行选中模式,G定位文档末尾)
cpp代码
#include <iostream> #include <map> using namespace std; map<long long, long long> coll; long loopLength(const long long* right){ long length = 1; long long current = *right; while(current > 1){ if(current % 2 == 0){ current /= 2; } else{ current = current * 3 + 1; } length++; } return length; } long loopLength_speedup(const long long* right){ long long length = 0; map<long long, long long>::iterator it = coll.find(*right); if(it == coll.end()){ length = loopLength(right); coll[*right] = length; } else{ length = it->second; } return length; } int maxLength(const long long* left, const long long* right){ long long min = *left < *right ? *left : *right; long long max = *left > *right ? *left : *right; long long current = min; int maxLength = 0; while(current <= max){ int length = loopLength_speedup(¤t); maxLength = length > maxLength ? length : maxLength; current++; } return maxLength; } int main(){ long long left, right; while(cin >> left >> right){ cout << left << " " << right << " " << maxLength(&left, &right) << endl; } return 0; }
代码中的 loopLength_speedup() 用来查找之前已经计算过的数字,如果之前计算过,就不用再计算,直接从map里面取结果就好了.
相关文章推荐
- 《ArcGIS Engine+C#实例开发教程》第五讲 鹰眼的实现
- 《ArcGIS Engine+C#实例开发教程》第四讲 状态栏信息的添加与实现
- 软件工程——第一周作业
- mvc自定义全局异常处理
- iOS小知识(一)
- VM序列号
- 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步
- 如何发布.Net MVC 网站项目(攻略集锦)
- sql server 创建日历表
- HDOJ 4474 Yet Another Multiple Problem(BFS)
- 《ArcGIS Engine+C#实例开发教程》第二讲 菜单的添加及其实现
- 欢迎使用CSDN-markdown编辑器
- 从阿里云的web一键安装包环境,升级PHP版本5.2到5.3的经验
- 关于加快python爬虫获取页面的方法
- it小小鸟
- 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立
- 《ArcGIS Engine+C#实例开发教程》
- Ubuntu安装google chrome过程
- 27734: 万妖穴
- iRepor多张报表连续输出