zzulioj - 2597: 角谷猜想2
题目链接:
http://acm.zzuli.edu.cn/problem.php?id=2597
这题n给的数字很大,显然需要我们打表,而且直接打表的话也很浪费时间,所以我们可以用记忆化搜索的方式,储存之前计算的值在之后计算用的时候用上以减少计算量
- #include<set>
- #include<map>
- #include<stack>
- #include<queue>
- #include<cmath>
- #include<cstdio>
- #include<cctype>
- #include<string>
- #include<vector>
- #include<climits>
- #include<cstring>
- #include<cstdlib>
- #include<iostream>
- #include<algorithm>
- #define max(a, b) (a > b ? a : b)
- #define min(a, b) (a < b ? a : b)
- #define mst(a) memset(a, 0, sizeof(a))
- #define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
- using namespace std;
- typedef long long ll;
- typedef pair<int, int> P;
- const double eps = 1e-;
- const int INF = 0x3f3f3f3f;
- const ll ll_INF = 0x3f3f3f3f3f3f3f;
- const int maxn = 4e6+;
- ll res[maxn] = {,};
- //递归
- ll solve(ll x) {
- ll cnt;
- if (x < maxn && res[x]) //利用中间结果减少计算量
- return res[x];
- cnt = solve(x& ? x* + : x >> ) + ;
- return cnt;
- }
- //循环版
- //ll solve(ll x) {
- // ll cnt = 1;
- // while(x != 1) {
- // x&1 ? x = x*3 + 1 : x >>= 1;
- // ++cnt;
- // if (x <= maxn && res[x])
- // return cnt+res[x]-1;
- // }
- // return cnt;
- //}
- int main(void) {
- for(int i = ; i<maxn; ++i)
- res[i] = solve(i);
- P _max = {res[], };
- res[] = ;
- for(int i = ; i<maxn; ++i) { //求解1~n内步长最大的数
- if (res[i] < _max.first)
- res[i] = _max.second;
- else if (res[i] > _max.first) {
- _max.first = res[i];
- _max.second = i;
- res[i] = i;
- }
- //printf("%lld ", res[i]);
- }
- int num;
- while(~scanf("%d", &num))
- printf("%lld\n", res[num]);
- return ;
- }
zzulioj - 2597: 角谷猜想2的更多相关文章
- Openjudge计算概论-角谷猜想
/*===================================== 角谷猜想 总时间限制: 1000ms 内存限制: 65536kB 描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数 ...
- POJ C程序设计进阶 编程题#2:角谷猜想
编程题#2:角谷猜想 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 所谓角谷 ...
- HDOJ 1279 验证角谷猜想
Problem Description 数论中有许多猜想尚未解决,其中有一个被称为"角谷猜想"的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何 ...
- hdu 验证角谷猜想 1279
Problem Description 数论中有许多猜想尚未解决,其中有一个被称为"角谷猜想"的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何 ...
- 验证角谷猜想(hd1279)
验证角谷猜想 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdu 1279 验证角谷猜想(简单的模拟)
Problem Description 数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数, ...
- Openjudge-计算概论(A)-角谷猜想
描述: 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1.如,假定初始整数为5,计算过程分别为16.8.4.2.1 ...
- 杭电 HDU 1279 验证角谷猜想
验证角谷猜想 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 题解报告:hdu 1279 验证角谷猜想
Problem Description 数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数, ...
随机推荐
- 【ztree】回显选中节点
// treeId是元素id,array是数据数组 var ztree = $.fn.zTree.init($("#treeId"), setting, array); // 获取 ...
- linux vsftp查看ftp账号信息的方法
linux vsftp查看ftp账号信息的方法 查看注册的FTP账号 在/etc/vsftpd/chroot_list 密码看不到 只能重置密码 passwd username
- scala中val和var的区别
1:内容是否可变:val修饰的是不可变的,var修饰是可变的 2:val修饰的变量在编译后类似于java中的中的变量被final修饰 3:lazy修饰符可以修饰变量,但是这个变量必须是val修饰的 p ...
- Jenkins整合SonarQube
一.概述 安装SonarQube,参考链接: https://www.cnblogs.com/xiao987334176/p/12011623.html 安装SonarQube Scanner,参考链 ...
- GitBook基本使用
1.安装 Node.js:https://nodejs.org/en/ 2.安装 GitBook: npm install gitbook-cli -g gitbook -V #查看gitbook是 ...
- 关于多个版本的jquery冲突的问题
关于多个版本的jquery冲突的问题 先加载新的版本jquery 然后使用no confi代码,直接上代码看效果 <script src="https://libs.baidu.com ...
- Linq分批次,每组1000条
/// <summary> /// 分组插入每次插入1000 /// </summary> /// <param name="data">< ...
- opc 相关组件
http://external.informer.com/opcsystems.com/download_opc_systems_net.htm
- Centos7 日志查看工具
1 概述 日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息.Systemd统一管理所有Unit的启动日志.带来的好处就是,可以 ...
- Java I/O系统学习系列三:I/O流的典型使用方式
尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合.下面的例子可以作为典型的IO用法的基本参考.在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适 ...