zoukankan      html  css  js  c++  java
  • CODEVS——T 2969 角谷猜想

    http://codevs.cn/problem/2969/

     时间限制: 1 s
     空间限制: 32000 KB
     题目等级 : 黄金 Gold
     
     
    题目描述 Description

    所谓角谷猜想,即给定一个正整数 n,对 n 反复进行下列两种变换:
    1)如果n是偶数,就除以2;
    2)如果n是奇数,就乘以3加1。
    最后的结果总是1。

    我们把从 n 变换到 1 所需要进行的变换次数称做 n 的变换长度,如数字 7 的变换为:

    7-22-11-34-17-52-26-13-40-20-10-5-16-8-4-2-1

    共进行了 16 次变换,因而 7 的变换长度为 16。

    Wish 现在对一个给定区间内的最长变换长度比较感兴趣,但是手算起来计算量太大,于是他又找到了参加信息学竞赛的你,你可以帮助他吗?

    输入描述 Input Description

    每个测试点包含多组数据,第一行一个数 t,表示数据个数。
    第二行至第 t+1 行,每行两个数 a、b,表示求 a 和 b 之间数(包含 a、b)的最长变换长度。


    输出描述 Output Description

    输出格式
    t 行,每行输出对应输入数据的各个区间的最长变换长度。

    样例输入 Sample Input

    2
    1 7
    9 20

    样例输出 Sample Output

    16
    20

    数据范围及提示 Data Size & Hint

    数据范围
    1 <= t <= 100
    1 <= a, b <= 10^8
    区间长度不超过 10^5

    记忆化、注意边界

    没写returnWA半天zz啊

     1 #include <iostream>
     2 #include <cstdio>
     3 
     4 using namespace std;
     5 
     6 #define LL long long
     7 #define max(a,b) (a>b?a:b)
     8 #define min(a,b) (a<b?a:b)
     9 inline void read(LL &x)
    10 {
    11     x=0; register char ch=getchar();
    12     for(; ch>'9'||ch<'0'; ) ch=getchar();
    13     for(; ch>='0'&&ch<='9'; ch=getchar()) x=x*10+ch-'0';
    14 }
    15 LL a,b,sum[1000000];
    16 
    17 LL DFS(LL now)
    18 {
    19     if(now==1) return 0;
    20     if(now<1000000)
    21     {
    22         if(sum[now]) return sum[now];
    23         else return now&1 ? sum[now]=DFS(now*3+1)+1 : sum[now]=DFS(now>>1)+1;
    24     }
    25     else return now&1 ? DFS(now*3+1)+1 :DFS(now>>1)+1;
    26 }
    27 
    28 int Presist()
    29 {
    30     int t;
    31     for(scanf("%d",&t); t--; )
    32     {
    33         LL ans=0;    read(a),read(b);
    34         for(LL i=min(a,b); i<=max(a,b); ++i)
    35             ans=max(DFS(i),ans);
    36         printf("%lld
    ",ans);
    37     }
    38     return 0;
    39 }
    40 
    41 int Aptal=Presist();
    42 int main(){;}
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    PHP基础学习笔记(一)
    安装wampserver之后,浏览器中输入localhost页面显示IIS7解决办法
    HTML5常识总结(一)
    AngularJs中的服务
    AngularJs中的directives(指令part1)
    Happy Number——LeetCode
    Binary Tree Zigzag Level Order Traversal——LeetCode
    Construct Binary Tree from Preorder and Inorder Traversal——LeetCode
    Construct Binary Tree from Inorder and Postorder Traversal——LeetCode
    Convert Sorted Array to Binary Search Tree——LeetCode
  • 原文地址:https://www.cnblogs.com/Shy-key/p/7544114.html
Copyright © 2011-2022 走看看