当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。现在输入n个数字a[i],根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输出输入的n个数中的关键数。如果其中有多个关键数的话按照其输入顺序的逆序输出。
Input
输入数据包含多个用例,每个用例首先包含一个整数n,然后接下来一行有n个整数a[i],其中:
1<=n<=500
1<a[i]<=1000
Output
请计算并输出数组a中包含的关键数,并按照其输入顺序的逆序输出,每个用例输出占一行。
Sample Input
3
3 8 4
5
3 8 4 7 15
5
3 8 4 15 7
0

Sample Output
3
15 7 3
7 15 3

Source
浙大计算机研究生复试上机考试-2009年
// 3n+1 问题
// 这题目真是好难理解
// 就是求序列中哪些数不会被覆盖

#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
bool
 h[200000];
int
 main()
{

     int
 n,m,i,k,a[503],b[503];
     while
(scanf("%d",&n),n)
     {

        memset(h,0,sizeof(h));
        for
(i=0;i<n;i++)
           scanf("%d",&b[i]);
       for
(i=0;i<n;i++)  ///坑人呀,或许是我想的不周全,理解不到位
      {

          m=b[i];
        while
(m>1)
        {

            if
(m%2)
              m=(m*3+1)>>1;
             else

              m=m>>1;
            h[m]=1;
        }
      }

        for
(k=i=0;i<n;i++)
        {

              if
(!h[b[i]])
               a[k++]=b[i];
        }

        printf("%d",a[--k]);
        for
(k--;k>=0;k--)
         printf(" %d",a[k]);
         printf("\n");
     }

        return
 0;
}

-------江财小子

转载于:https://www.cnblogs.com/372465774y/archive/2012/03/28/2421647.html

hdu 3784 继续xxx定律相关推荐

  1. java 杭电3784继续xxx定律 栈的使用

    继续xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  2. 题目1033:继续xxx定律

    /*************************************** 题目描述:当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4, ...

  3. xxx定律-poj-3782

    xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. HDU3784 继续xxx定律【角谷猜想】

    继续xxx定律 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. HDU3782 xxx定律【数学计算+水题】

    xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  6. 九度1031 xxx定律

    /********************************* * 日期:2013-1-9 * 作者:SJF0115 * 题号: 九度1031 * 题目:xxx定律* 来源:http://ac. ...

  7. 浙江大学计算机考研机试KY132 xxx定律

    题目 描述对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 请计算需要经过几步才能将n变到1,具体可见样例. 输入描述:测试包含多个用例,每 ...

  8. xxx定律 3782

    Problem Description 对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 请计算需要经过几步才能将n变到1,具体可见样例. ...

  9. HDU各种考试题题解

    HDU各种考试题目一览 - Virtual Judge HDU研究生程序机考与考试 浙大计算机研究生复试上机考试-2005年 HDU1228 A + B[map] - 海岛Blog - CSDN博客 ...

最新文章

  1. Emptiness 空值语义
  2. python3各个版本是通用的吗-python3各版本
  3. python爬取公众号,用最简单的方式爬虫
  4. SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework...
  5. Blender真是不错的东西
  6. RabbitMQ消息队列之RPC调用
  7. PHP将一个pdf 拆分按需要页码组装新的pdf
  8. 由C向B:社区团购切换比拼赛道?
  9. ceres拟合分段函数
  10. #windowsxpsp3系统MS08-067漏洞测试
  11. 尚未解决的10个最困难的数学问题
  12. MacBook Air老本重装系统
  13. collections.Counter
  14. apk包的破解与反编译
  15. go 判断切片是否存在某元素_Golang切片(Slice)
  16. linux恢复安卓数据,安卓数据恢复2 - ranfs的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 计算机专业大学新学年计划,大学的新学期的学习计划(精选5篇)
  18. 《Dead Cells》的随机地图生成
  19. 鞍部在哪里_太原蒙山究竟在哪里?
  20. 头上有白头发,赶紧改掉这些习惯!

热门文章

  1. 设置java路径_关于java路径设置
  2. ssh密钥登录 改密码登录_如何使用密钥对通过SSH登录而不使用密码
  3. easymock_EasyMock验证
  4. 熊猫分发_熊猫cut()函数示例
  5. Hibernate Tomcat JNDI数据源示例教程
  6. ROS的学习(六)理解ROS的节点(NODE)
  7. redmine cannot load such file – rbpdf-font
  8. 122 Best Time to Buy and Sell Stock II
  9. strtus2 与springmvc
  10. 转:使用NSOperationQueue简化多线程开发