![](https://img-blog.csdnimg.cn/20200723185853664.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PAT乙级汇总
文章平均质量分 67
我的PAT之旅
陌陌623
文崇的编程
展开
-
1058 选择题 模拟
感觉有点点麻烦哎不过还好,hh比较顺利文章目录题目输入格式:输出格式:输入样例:输出样例:题解Code题目批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文字原创 2021-02-05 18:52:27 · 243 阅读 · 0 评论 -
1155 Heap Paths
题解看了柳神的题解用dfs去寻找路径,这个过程不是很难:用先序遍历的方式递归过程中记录节点,注意返回的时候需要pop判断堆的类型,也比较简单,遍历一遍节点我之前自己写的很麻烦,100行左右,对了22分。是去找最所有的叶子节点。然后通过叶子节点往上找。。我这,好麻烦。最后是两个超时,一个WA,WA的那个我知道是为啥了,也没再改。#include <iostream>#include <vector>using namespace std;vector<in原创 2020-11-22 11:12:20 · 114 阅读 · 0 评论 -
1065 单身狗
陌陌的pat乙级题解目录题解使用一个数组记录两个人之间的情侣关系,即:a[x] = y, a[y] = x;判断的时候,将先进来的人 x 和 x 的情侣y做标记,即:b[x] = b[a[x]] = 1;如果之后的数进来, 若b[x] == 1 说明他的对象之前已经进来了所以他们两个在这个判断一定不是单身狗,标记为 b[x] = b[a[x]] = 2排队全部的人都由set接受,最后遍历set判断,利用set的自动排序功能Code#include <iostream>#inc原创 2020-11-20 09:03:55 · 198 阅读 · 0 评论 -
1068 万绿丛中一点红 逻辑题
题解逻辑题1. 判断独一无二,那肯定是用map方便了2. 先全部输入,再去遍历3. 首先需要满足独一无二,然后判断周围的8个点4. 用几个标记,记录是否已有答案等Code#include <iostream>#include <map>#include <vector>#include <cmath>using namespace std;int main(){ map<int, int>原创 2020-08-16 10:27:04 · 268 阅读 · 0 评论 -
1069 微博转发抽奖 数组操作
陌陌的pat乙级题解题解数组操作我认为先把数据存起来 处理更方便把名单存到一个vector里t 代表已经间隔的人数,if(t == K) 来判断是不是中奖过滤重复的人利用set,把已经中奖的人放进去,每次t == K跑个while, 条件是v[i],i++ 一直在ret中。那么第一个退出的就是中奖的人最后看set是不是空就行,如果有中奖的,一定存到了set里Code#include <iostream>#include <vec原创 2020-08-14 15:24:45 · 268 阅读 · 0 评论 -
1070 结绳 贪心
文章目录陌陌的pat乙级题解题解Code柳神Code陌陌的pat乙级题解题解贪心越短的绳子折完之后,最终损失的也就越少所以每次寻找两条最短的,每次都把折完的绳子在放回去每次这样最长的绳子一定是在最后折的,也就损失的最少柳神柳神的题解更简单,不过最终的意思其实是一个样子固定住一个绳子,每次都往里加绳子所以加的越早,被折的次数也就越多每次都往里面加最短的(固定的这个绳子不算)用sort排个序,从前往后就行了Code#in原创 2020-08-13 10:01:58 · 218 阅读 · 0 评论 -
1071 小赌怡情 简单模拟题
陌陌的pat乙级题解题解过程模拟ans表示此次比赛的结果n1 > n2 ans = 0, 否则ans = 1这样直接去和b比较,如果相等就OK每次输赢都改变NCode#include <iostream>using namespace std;int main(){ int N, M; scanf("%d%d", &N, &M); while (M--) { int n1原创 2020-08-13 09:27:52 · 279 阅读 · 0 评论 -
1072 开学寄语 简单题
陌陌的pat乙级题解题解小逻辑程序比较简单,整个过程就是保存和查找为了方便的查找我用了set保存违禁物品输入人的数据的时候,定义一个bool f来标记是不是有违禁物品以及如果有违禁物品是不是这个人的第一个如果是这个人的第一个违禁物品,那么需要输出这个人的名字Code#include <iostream>#include <set>using namespace std;int main(){ int N, M;原创 2020-08-12 10:33:40 · 209 阅读 · 0 评论 -
1073 多选题常见计分法 逻辑题
陌陌的pat乙级题解题解逻辑题确实感觉我写的有点麻烦,不过感觉还算比较好理解首先要知道的是:错误选择是指 错选 和 漏选(正确的不够)我的数据结构:1. 两个二维数组,记录错的次数 和 正确性2. 一个map<int,set> 记录每道题的正确答案,目的是为了判断漏选Code#include <iostream>#include <map>#include <set>#include <vec原创 2020-08-11 10:58:44 · 381 阅读 · 0 评论 -
1074 宇宙无敌加法器 模拟加法
陌陌的pat乙级题解目录题解柳神题解:先将要相加的两个字符串S1和S2都扩展到和S等长,然后从后往前按照进制相加到ans中,注意 进位carry,后输出字符串ans,记得不要输出字符串ans前面的0。如果一次都没有输出,后要输出一个0~#include <iostream>using namespace std;int main(){ string s, s1, s2, ans; // carry进位 int carry = 0, flag = 0;原创 2020-08-07 10:29:36 · 248 阅读 · 0 评论 -
1075 链表元素分类 静态链表
陌陌的pat乙级题解目录题解静态链表乙级出过两个静态链表,天梯出过一个,这个还算简单1. 定义两个map,一个放数据,一个放下一个的地址2. 然后定义三个vector,一个循环将小于0 0-K 大于K 的分别放到三个vector里,并且是顺序是正常的3. 依次输出也行,我又定义了一个ans,把他们三都放ans里一起输出4. 静态链表的题都有坑,最后的长度可能改变,(有可能是故意输入了错误的数据),所以ans的真实大小,后面得在计算,如果输出的时候,直接 i<原创 2020-07-28 11:17:21 · 217 阅读 · 0 评论 -
1076 Wifi密码 超简单思维题
陌陌的pat乙级题解目录题解柳神题解: n没什什么作⽤用~以字符串串⽅方式接收输⼊入,只要遇到任何⼀一个字符串串s满⾜足⼤大⼩小为3且s[2]为’T’,就 将s[0]字⺟母对应的wifi密码输出~Code#include <iostream>using namespace std;int main(){ string s; while (cin >> s) { if(s[2] == 'T') cout<&原创 2020-07-27 17:42:31 · 613 阅读 · 0 评论 -
1077 互评成绩计算 理解题
陌陌的pat乙级题解目录题解有人说是水题哈哈哈哈也不尽然如果一开始没仔细看题,像我一样。那可就不是水题了哈哈哈Code#include <iostream>using namespace std;int main(){ int N, M; cin >> N >> M; for (int k = 0; k < N; k++) { int a, b, t = -2;原创 2020-07-27 17:33:58 · 246 阅读 · 0 评论 -
1078 字符串压缩与解压 逻辑 + String
题解逻辑我其实不怎么分得清什么是逻辑题,只是感觉比较难想的就是我看柳神把这个题归为逻辑题,我。。。嗯就是吧,我做这个的时候比较轻松其实这两天做题都挺轻松,可能是做的量上来了,感觉也跟着来了,今天做的题,都是一下过,没有改bug题解:对于字符串的遍历,我喜欢while(!s.empty())就是一直遍历到空,每次都删除第一个,每次都看第一个,这样就不需要考虑下标的变化,我喜欢这样1.压缩:每次都字符有几个,如果是1个就直接输出,2个以上就先输出个数再输出原创 2020-07-27 11:45:25 · 183 阅读 · 0 评论 -
1079 延迟的回文数 string + 模拟加法
题解大数加法回文数比较容易出来,利用reverse函数麻烦的是怎么把两个string加起来我看这题是大数加法的升级版,不过大数加法也不难两个字符串还是利用大数加法的过程,只是在相加的时候要先把加的两个字符转为数字相加,然后在变成字符放到答案里Code#include <iostream>#include <algorithm>using namespace std;int main(){ string s; cin原创 2020-07-27 11:18:47 · 134 阅读 · 0 评论 -
1080 MOOC期终成绩 大数据处理
题解大数据又是一道大数据的题目我总是喜欢把全部的数据放到一个结构体变量里,其实有时候分开存变量也挺好的1. 定义一个map,用id 和 id的全部属性作映射2. 3个输入,第一个输入的时候,把Gf和Gm都置为-1,如果后面他们两个没有输入,也就直接是-1了第二个输入判断Gp输入了没有(利用map判断),没有的话也置为-1输入第三个的时候要判断gf和gm谁大3. gm > gf就得四舍五入做完我看了柳神的题解,我以前想的判断四舍五入简直是to原创 2020-07-27 10:42:17 · 237 阅读 · 0 评论 -
1081 检查密码 字符串+判断
题解柳神题解:非空字符串,每个字符串以回⻋车结束,但是字符串里⾯可能会有空格,所以不能直接用cin,要 用getline接收一行字符。在接收完n后要getchar()读取⼀下行符才能⽤用getline,否则换⾏符会被读进 getline中~Code#include <iostream>using namespace std;int main(){ int N; cin >> N; getchar(); while (N--) {原创 2020-07-26 19:07:11 · 216 阅读 · 0 评论 -
PAT乙级题解目录 - 陌陌
陌陌的pat乙级题解目录这一行需要居中原创 2020-07-26 18:16:42 · 352 阅读 · 0 评论 -
1082 射击比赛 数据处理 + 计算
题解其实也不能算是数据处理题毕竟数据量很小我用了map存因为我觉得map带的排序很好用主要是这个题的数据量不大,随便搞啊距离原点的距离对应id,距离自动排序Code#include <iostream>#include <map>#include <cmath>using namespace std;double f(int x, int y){ return sqrt(x * x + y * y);原创 2020-07-26 18:13:53 · 562 阅读 · 0 评论 -
1083 是否存在相等的差 map映射
题解map存在一个映射关系差值Code#include <iostream>#include <map>using namespace std;int main(){ int N; cin >> N; map<int, int, greater<>> rap; for (int i = 1; i <= N; i++) { int x;原创 2020-07-26 17:50:53 · 107 阅读 · 0 评论 -
1084 外观数列 字符串String
文章目录题解Code题解String题目一开始可能有点难以理解先看例子理解一下得到下一个序列要用两步1. 取出要判断的字符(后面写这个字符有几个)2. 计算这个字符有几个把这些作为字符串放到另一个字符串中Code#include <iostream>using namespace std;int main(){ string d; int N; cin >> d >> N;原创 2020-07-26 17:34:37 · 169 阅读 · 0 评论 -
1085 PAT单位排行 数据处理
文章目录题解Code题解复杂数据处理题目此题的数据不难处理乙级最后一个题很多这种给很多数据,让处理首先还是要看数据结构有映射关系,学校 - 人数和权值最好是利用两个map进行解决,一个映射人数,一个映射权值如果都将他们放到一个map的结构体里,会有点过不去,数据处理问题往往实现的较为困难,但是慢慢做也是可以出来但有一些点就会被忽略掉,还有慢慢改bug,最好是首先就选择一个好是数据结构糟糕的实现,往往顾不上细节的代码,只为了大致的正确原创 2020-07-26 17:17:12 · 163 阅读 · 0 评论 -
1087 有多少不同的值 set应用
全部插入到set,最后求一个size#include <iostream>#include <set>using namespace std;int main(){ set<int> ret; int N; cin >> N; for (int i = 1; i <= N; i++) { double t = i; ret.insert(int(t / 2) + int.原创 2020-07-26 11:29:07 · 114 阅读 · 0 评论 -
1086 就不告诉你 字符串string
反转直接使用库函数,先转成string,然后再转成数字,因为有可能转过之后,开头是0#include <iostream>#include <algorithm>using namespace std;int main(){ int a, b; cin >> a >> b; string s = to_string(a * b); reverse(s.begin(), s.end()); cout <.原创 2020-07-26 11:28:08 · 196 阅读 · 0 评论 -
1088 三人行 简单逻辑
题解逻辑是一个比较简单的逻辑关系题要注意小细节,丙可能是小数以及小数判断相等的方法Code#include <iostream>#include <cmath>using namespace std;int me;// c有可能是浮点数string judge(double x){ if (x == me) return "Ping"; else if (x < me) retu原创 2020-07-26 10:32:28 · 206 阅读 · 0 评论 -
1089 狼人杀-简单版 逻辑题
题解逻辑题我一开始的想法是狼人中一定有一个人是说谎的,而且还有另一个不是狼人的人在说谎,于是把说谎的人的可能性,遍历出来。可是这样很麻烦,最后也才是8分,我看到别的代码短的,就没有再去改bug了正确的思路:依次遍历每一对人,这一对人是狼人,然后判断有几个说谎的人,如果说谎的人数是2,并且一个是狼人一个不是狼人,就输出判断是否说谎也比较容易加入我们已知谁是狼人谁不是然后和原数据结果不一样的,就是说谎的人Code#include <iostream原创 2020-07-25 11:06:53 · 725 阅读 · 0 评论 -
1090 危险品装箱 数据处理
题解又是这种数据处理的题目首先考虑数据结构不相容的管理必须要存还要保证后面判断的时候容易,可以很快的判断map<int,set < int > >加入a,b不相容把所有和a不相容的加到map[a]的容器中,这样查询的时候,直接一个countb也是一样,一样要把a加进去Code#include <iostream>#include <map>#include <set>using原创 2020-07-25 09:05:44 · 199 阅读 · 0 评论 -
1091 N-自守数 简单模拟类
题解模拟已经有了一个算法,我们实现他就可以因为M和N及其小,所以不用考虑超时问题就算写low一点也没问题Code#include <iostream>#include <cmath>using namespace std;int main(){ int M; cin >> M; int x; while (M--) { int f = 0; cin &g原创 2020-07-25 08:49:52 · 128 阅读 · 0 评论 -
1092 最好吃的月饼 简单数据处理
题解数据处理数据量不大 只需要简单存储和处理即可我写题的时候,经常使用STL,其实有时候不用STL反而更容易当然我说的是简单题,对于这种题,存起来遍历一遍就行数据处理问题,首先要想的还是数据结构#include <bits/stdc++.h>using namespace std;int main(){ int N, M; cin >> N >> M; vector<int> v(N +原创 2020-07-25 08:40:24 · 111 阅读 · 0 评论 -
1093 字符串A+B 标记题
题解字符串发现第一次不管后面有没有都输出第二次就不能输出了直接开一个int数组就行输出的就标记一下而且发现,两个串其实和一个差不多都放到第一个串里就行了,一起实现#include <iostream>using namespace std;int main(){ string a, b; int t[150] = {0}; getline(cin, a); getline(cin, b); a原创 2020-07-23 20:01:05 · 132 阅读 · 0 评论 -
1094 谷歌的招聘 简单功能的实现
题解实现一个功能实现起来并不难当然需要知道string的stoi和substr函数有个小细节,必须以string的形式输出有可能输出的是002,若是int输出,只会2Code#include <iostream>#include <cmath>using namespace std;bool f(int x){ if (x == 1) return false; for (int i = 2; i原创 2020-07-23 19:53:58 · 118 阅读 · 0 评论 -
1095 解码PAT准考证 大数据处理
文章目录题解Code题解大数据处理这样的大数据的题,首先要确定一个方便的数据结构我来说一下我的数据结构,当然不是最好的,我见我老师的代码比我快挺多数据结构分析:1. “类型 为 1 表示要求按分数非升序输出某个指定级别的考生的成绩,对应的 指令 则给出代表指定级别的字母;”map<char, vector<pair<string, int>>> A;让级别对应一个集合,集合里存放这个人的id和分数2. “类型 为原创 2020-07-23 18:55:26 · 150 阅读 · 0 评论