PAT乙级题解1005(超级详细分析,看完就懂)
题目描述:
题意简化:
覆盖的定义:将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(超级详细分析,看完就懂)相关推荐
- PAT乙级题解1003(超级详细分析,看完就懂)
题目描述: 题意简化: 给定一个字符串和一些判定规则,判断该字符串是否正确 思路分析(解读规则): ① 字符串中只能含有P , A , T这三种字符 ②形如PAT , APATA , AAPATAA ...
- PAT乙级题解1009(超级详细分析,看完就懂)
题目描述: 题意简化: 将一句话中的单词倒序输出 思路分析: 用vector存放一句话中的每个单词,再倒序输出即可 要用到while(cin >> str),表示每次输入一个string类 ...
- PAT乙级题解1006(超级详细分析,看完就懂)
题目描述: 题意简化: 对于一个三位正整数x1x2x3x_1x_2x_3x1x2x3(x1x_1x1表示百位数字,以此类推),输出x1x_1x1个B,输出x2x_2x2个S,再输出12-x ...
- PAT乙级题解1008(超级详细分析,看完就懂)
题目描述: 题意简化: 将数组的后m(m <= n)个元素移到数组(下标从0开始)前面 思路分析: 可以从输出角度入手,不需要真正移动元素,分类讨论: ①如果m >= n,例如m = 10 ...
- 2021年冬季PAT乙级题解(C/C++语言)
2021年冬季PAT乙级题解(C/C++语言) 7-1 自动打包机 (15 分) 原题 算法标签 模拟 代码 #include<bits/stdc++.h> #define int lon ...
- 看完弄懂,明年至少加 5K
看完弄懂,明年至少加 5K
- 网络通过猫传输到计算机,网络直接从光猫出来好还是接个路由器再接入电脑好?看完搞懂了...
网络直接从光猫出来好还是接个路由器再接入电脑好?看完搞懂了 宽带网络现在是家家户户不可缺少的"硬件"之一,现在即便是老一辈的人家中安装宽带都成了必需品.有些偏好用电脑来上网的朋友可 ...
- 高铁、动车到底啥区别?看完彻底懂了(组图)
摘自:网易新闻 (原标题:高铁.动车到底啥区别?看完彻底懂了(组图)) 高铁与动车的区别到底在哪里?磁悬浮列车又是什么鬼?今天给你讲讲清楚! 高铁.动车到底啥区别?看完彻底懂了 一.普通列车与高铁钢轨 ...
- 华为mate10pro以后能上鸿蒙吗,华为Mate10和Mate10 Pro差别一览 怎么选看完就懂
华为Mate10和Mate10 Pro差别一览 怎么选看完就懂上周五华为正式发布了今年的两款重磅旗舰Mate10和Mate10 Pro.与上代产品不同,此次Mate10系列的两款产品无论是在外观还是一 ...
最新文章
- 移动端手机网站建设应注意哪些问题?
- Linq to sql查询句法
- OpenCASCADE绘制测试线束:形状修复命令之转换命令
- mvc html根目录,c#-路由到ASP.NET MVC中的根目录
- 从零开始学习docker(四)host
- Programming Ability Test学习 3-05. 求链式线性表的倒数第K项(15)
- P5048-[Ynoi2019 模拟赛]Yuno loves sqrt technology III【分块】
- DA模拟量控制外接600V高压直流源-设计分析
- Servlet方法详解
- 优化理论07-----拟牛顿法、拟牛顿方程、对称秩二更新公式、BFGS、DFS、Broyden族、Huang’s Family
- 入门知识(一)矢量图与位图的区别
- 前端标注软件-pxcook像素大厨使用心得
- FIR 滤波器参数意义
- 使用fisheye4.8(crucible4.8)添加仓库时出现的问题
- idea git输错密码的处理 win10
- 设计递归函数模拟汉诺塔游戏
- 调用函数,求加减乘除(基础)。
- C++中的string用法
- 光流估计(三) PWC-Net 模型介绍
- NVIDIA vGPU vApps/vWS/vCS适配GPU版本介绍