题目描述:

题意简化:

覆盖的定义:将n按照卡拉兹猜想去递推,递推过程的数就是被n覆盖的数
给定一个序列,找出序列中那些没有被序列其他数字覆盖过的数,从大到小输出

思路分析:

  • 对于序列中的每个数,按照卡拉兹猜想去递推,标记递推中出现过的数,表示这个数被覆盖过(因为每个数的大小是1~ 100,所以对于递推中大于100的数不用进行标记,因为序列中根本不会出现大于100的数)
  • 因为要从到大到小输出,可以遍历一遍序列,将没有被标记过(即没有被序列其他数字覆盖过)的数加入vector,然后将vector里的数按照从大到小输出即可
  • 注意输出格式,行尾不能输出空格。可以有两种方式解决:
    ①先输出第一个数,然后输出后面的数之前先输出一个空格
    ②如果不是输出最后一个数,就多输出一个空格

算法:

模拟

c++代码

#include <bits/stdc++.h>using namespace std;const int N = 110;int n;
int a[N],v[N];      // a[]存储序列,v[]存储每个数是否被标记过
vector <int> res; // res存储未被标记过的数// 标记"x递推过程中被覆盖的数"
void solve(int x){while(x != 1){if(x % 2 == 0) x /= 2;else x = (3 * x + 1) / 2;if(x > 100) continue;   v[x] = 1;}
}int main(){cin >> n;// 对于序列中的每个数,按照卡拉兹猜想去递推,标记递推中出现过的数for(int i = 0;i < n;i ++){cin >> a[i];solve(a[i]);}    // 遍历一遍序列,将没有被标记过(即没有被序列其他数字覆盖过)的数加入vectorfor(int i = 0;i < n;i ++)if(!v[a[i]]) res.push_back(a[i]);// 将vector里的数按照从大到小排序sort(res.begin(),res.end(),greater<int>());// 注意输出格式cout << res[0];for(int i = 1;i < res.size();i ++)cout << ' ' << res[i];puts("");return 0;
}

PAT乙级题解1005(超级详细分析,看完就懂)相关推荐

  1. PAT乙级题解1003(超级详细分析,看完就懂)

    题目描述: 题意简化: 给定一个字符串和一些判定规则,判断该字符串是否正确 思路分析(解读规则): ① 字符串中只能含有P , A , T这三种字符 ②形如PAT , APATA , AAPATAA ...

  2. PAT乙级题解1009(超级详细分析,看完就懂)

    题目描述: 题意简化: 将一句话中的单词倒序输出 思路分析: 用vector存放一句话中的每个单词,再倒序输出即可 要用到while(cin >> str),表示每次输入一个string类 ...

  3. PAT乙级题解1006(超级详细分析,看完就懂)

    题目描述: 题意简化: 对于一个三位正整数x1x2x3x_1x_2x_3x1​x2​x3​(x1x_1x1​表示百位数字,以此类推),输出x1x_1x1​个B,输出x2x_2x2​个S,再输出12-x ...

  4. PAT乙级题解1008(超级详细分析,看完就懂)

    题目描述: 题意简化: 将数组的后m(m <= n)个元素移到数组(下标从0开始)前面 思路分析: 可以从输出角度入手,不需要真正移动元素,分类讨论: ①如果m >= n,例如m = 10 ...

  5. 2021年冬季PAT乙级题解(C/C++语言)

    2021年冬季PAT乙级题解(C/C++语言) 7-1 自动打包机 (15 分) 原题 算法标签 模拟 代码 #include<bits/stdc++.h> #define int lon ...

  6. 看完弄懂,明年至少加 5K

    看完弄懂,明年至少加 5K

  7. 网络通过猫传输到计算机,网络直接从光猫出来好还是接个路由器再接入电脑好?看完搞懂了...

    网络直接从光猫出来好还是接个路由器再接入电脑好?看完搞懂了 宽带网络现在是家家户户不可缺少的"硬件"之一,现在即便是老一辈的人家中安装宽带都成了必需品.有些偏好用电脑来上网的朋友可 ...

  8. 高铁、动车到底啥区别?看完彻底懂了(组图)

    摘自:网易新闻 (原标题:高铁.动车到底啥区别?看完彻底懂了(组图)) 高铁与动车的区别到底在哪里?磁悬浮列车又是什么鬼?今天给你讲讲清楚! 高铁.动车到底啥区别?看完彻底懂了 一.普通列车与高铁钢轨 ...

  9. 华为mate10pro以后能上鸿蒙吗,华为Mate10和Mate10 Pro差别一览 怎么选看完就懂

    华为Mate10和Mate10 Pro差别一览 怎么选看完就懂上周五华为正式发布了今年的两款重磅旗舰Mate10和Mate10 Pro.与上代产品不同,此次Mate10系列的两款产品无论是在外观还是一 ...

最新文章

  1. 移动端手机网站建设应注意哪些问题?
  2. Linq to sql查询句法
  3. OpenCASCADE绘制测试线束:形状修复命令之转换命令
  4. mvc html根目录,c#-路由到ASP.NET MVC中的根目录
  5. 从零开始学习docker(四)host
  6. Programming Ability Test学习 3-05. 求链式线性表的倒数第K项(15)
  7. P5048-[Ynoi2019 模拟赛]Yuno loves sqrt technology III【分块】
  8. DA模拟量控制外接600V高压直流源-设计分析
  9. Servlet方法详解
  10. 优化理论07-----拟牛顿法、拟牛顿方程、对称秩二更新公式、BFGS、DFS、Broyden族、Huang’s Family
  11. 入门知识(一)矢量图与位图的区别
  12. 前端标注软件-pxcook像素大厨使用心得
  13. FIR 滤波器参数意义
  14. 使用fisheye4.8(crucible4.8)添加仓库时出现的问题
  15. idea git输错密码的处理 win10
  16. 设计递归函数模拟汉诺塔游戏
  17. 调用函数,求加减乘除(基础)。
  18. C++中的string用法
  19. 光流估计(三) PWC-Net 模型介绍
  20. NVIDIA vGPU vApps/vWS/vCS适配GPU版本介绍

热门文章

  1. “我想学习人工智能与机器学习,该从何做起?”
  2. 黑苹果 GTX1060 6G显卡 EFI 文件
  3. 查看SCI期刊引用格式步骤记录
  4. 魔兽世界服务端centos架设
  5. 【C/C++】内存对齐(超详细,看这一篇就够了)
  6. 云原生Envoy边缘服务代理简介和使用指南
  7. sftp上传和下载文件
  8. 查询QQ号码是否在线
  9. 路由器、交换机、集线器三剑客有什么区别?分别是用来干什么的?
  10. Data Integration - Kettle8.2使用(一)Kettle下载安装