当前位置: 首页 > news >正文

1005. 继续(3n+1)猜想 (25)

1005. 继续(3n+1)猜想 (25)

时间限制
400 ms
内存限制
65536 kB
 乙级练习题解目录
 

卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。

当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这4个数已经在验证3的时候遇到过了,我们称5、8、4、2是被3“覆盖”的数。我们称一个数列中的某个数n为“关键数”,如果n不能被数列中的其他数字所覆盖。

现在给定一系列待验证的数字,我们只需要验证其中的几个关键数,就可以不必再重复验证余下的数字。你的任务就是找出这些关键数字,并按从大到小的顺序输出它们。

输入格式:每个测试输入包含1个测试用例,第1行给出一个正整数K(<100),第2行给出K个互不相同的待验证的正整数n(1<n<=100)的值,数字间用空格隔开。

输出格式:每个测试用例的输出占一行,按从大到小的顺序输出关键数字。数字间用1个空格隔开,但一行中最后一个数字后没有空格。

输入样例:
6
3 5 6 7 8 11
输出样例:
7 6

分析:
  用a[i]存储i是否为关键字,刚开始将输入的值都设为true,对每个值做一遍f(x)将被x覆盖的值的a[]设为false;最后将值仍为true的输出。
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 bool a[101];
 5 
 6 void f(int n){
 7     while(n>1){
 8         if(n%2==0) n/=2;
 9         else n=(3*n+1)/2;
10         if(n<100) a[n]=false;
11     }
12 }
13 int main()
14 {
15     int n,x;
16     cin>>n;
17     while(n--){
18         cin>>x;
19         a[x]=true;
20     }
21     for(int i=1;i<101;i++){
22         if(a[i]) f(i);
23     }
24     int first=0;
25     for(int i=100;i>0;i--){
26         if(a[i]){
27             if(first++>0) cout<<" ";
28             cout<<i;
29         }
30     }
31     return 0;    
32 }

 

 

转载于:https://www.cnblogs.com/Fresh--air/p/8576441.html

相关文章:

  • [UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
  • 微服务的4个设计原则和19个解决方案
  • 阿里云Redis开发规范
  • SEMI-PARAMETRIC TOPOLOGICAL MEMORY FOR NAVIGATION
  • StringUtils方法
  • java自定义注解
  • 排序算法之--选择排序
  • Shell脚本(2)-if语句
  • spring security reactive获取security context
  • rocketMq概念介绍
  • PHP垃圾回收机制
  • SpringCloud |第三篇: 服务消费者(Feign+REST)
  • Android请求网络数据下载APK安装包
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 技术相对论之软件架构
  • Date型的使用
  • ES6 学习笔记(一)let,const和解构赋值
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • java正则表式的使用
  • Python连接Oracle
  • Python学习之路16-使用API
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 测试如何在敏捷团队中工作?
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 深度学习入门:10门免费线上课程推荐
  • 实战|智能家居行业移动应用性能分析
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​水经微图Web1.5.0版即将上线
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (2020)Java后端开发----(面试题和笔试题)
  • (LeetCode) T14. Longest Common Prefix
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (七)c52学习之旅-中断
  • (五)c52学习之旅-静态数码管
  • ***测试-HTTP方法
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Framework杂记
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 反编译_.net反编译的相关问题
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net6Api后台+uniapp导出Excel
  • .NET构架之我见
  • .net经典笔试题
  • /var/log/cvslog 太大
  • @Bean有哪些属性
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ 第一章] JavaScript 简史
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [2021 蓝帽杯] One Pointer PHP
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [BetterExplained]书写是为了更好的思考(转载)