![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT甲级刷题笔记
一切么得问题
这个作者很懒,什么都没留下…
展开
-
PAT【甲级】1093
题目链接:PAT【甲级】1093题目简述:算给定一个字符串中PAT的个数#include<bits/stdc++.h>using namespace std;int main(){ int pa = 0, p = 0, ans = 0; string ss; cin >> ss; for (int i = 0; i < ss.size(); i++){ if(ss[i] == 'P') p++;原创 2021-08-11 23:25:05 · 147 阅读 · 0 评论 -
PAT【甲级】1014
题目链接:PAT【甲级】1014题目简述:n个窗⼝,每个窗⼝可以排队m⼈。有k位用户需要服务,给出了每位⽤户需要的分钟数,所有客户在8点开始服务,如果有窗⼝还没排满用户就去排队,否则就在⻩线外等候。如果有某窗户前的一个用户服务完毕了,⻩线外的⼈就进来⼀个。如果同时发生就选窗⼝数⼩的,求q个⼈的服务结束时间。#include<iostream>#include<queue>using namespace std;int n, m, k, q, v[1005], mtime[原创 2021-07-01 16:08:01 · 191 阅读 · 1 评论 -
PAT【甲级】1060
题目链接:PAT【甲级】1160题目简述::给出两个数,问将它们写成保留N位小数的科学计数法后是否相等。如果相等,输出YES, 输出他们的科学记数法表示方法。如果不相等输出NO,分别输出他们的科学计数表示。#include<bits/stdc++.h>using namespace std;string factory(string s, int n){ int pos = 0; while(pos < s.size() && s[pos] !=原创 2021-05-10 13:10:09 · 198 阅读 · 0 评论 -
PAT【甲级】1064
题目链接:PAT【甲级】1064题目简述:给⼀串树的序列,已知该树是完全⼆叉搜索树,求它的层序遍历的序列。#include<bits/stdc++.h>using namespace std;int n;vector<int> in(1005), level(1005), v2;void inTraverse(int root){ if(root > n) return; inTraverse(2 * root); v2.push_back原创 2021-05-09 22:51:09 · 178 阅读 · 0 评论 -
PAT【甲级】1082
题目链接:PAT【甲级】1082题目简述:给定⼀个不超过9位的整数,你应该用传统的中文方式阅读它。 如果是负的,⾸先输出“Fu”, 例如,-123456789被读作“Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu”。 注意:零(“ling”)必须根据中国传统正确处理。 例如,100800是“yi Shi Wan ling ba Bai”。#include<bits/stdc++.h>using namesp原创 2021-05-08 15:34:15 · 206 阅读 · 0 评论 -
PAT【甲级】1072
题目链接:PAT【甲级】1072题目简述:就是去给定一个“图”吧,让你求符合要求的加油站,使得其到每户人家的平均距离最短,但前提是要求到每户人家的最小距离最大。#include<bits/stdc++.h>using namespace std;int n, m, k, ds, ans;double mindis = -1, avgdis = -1;int graph[1012][1012], isGas[1012];void dijkstra(int beg){ ve原创 2021-05-05 10:57:53 · 170 阅读 · 0 评论 -
PAT【甲级】1105
题目链接:PAT【甲级】1105题目简述:将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1 个格子开始,按顺时针螺旋方向填充,要求矩阵的规模为m行n列,满足条件:m*n=N;m>=n;且 m-n取所有可能值中的小值。#include<bits/stdc++.h>using namespace std;int main(){ int N, m, n, u = 0; cin >> N; vector<in原创 2021-04-30 10:49:00 · 81 阅读 · 0 评论 -
PAT【甲级】1107
题目链接:PAT【甲级】1107题目简述:有n个人,每个人喜欢k个活动,如果两个人有任意⼀个活动相同,就称为他们处于同一个社交网络。求这n个人⼀共形成了多少个社交网络。#include<bits/stdc++.h>using namespace std;int father[1001], exist[1001], hobby[1001];vector<int> ans;int findFather(int a){ int x = a; while(x原创 2021-04-29 23:12:29 · 129 阅读 · 0 评论 -
PAT【甲级】1109
题目链接:PAT【甲级】1109题目简述::拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下:1、每排人数为N/K(向下取整),多出来的人全部站在后一排;2、后排所有人的个子都不比前排任何人矮;3、每排中高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整);每排其他人以 间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、 175、170,则队形为175、188、190、186、170。这里假设你面对拍照者,所以你的左边是中原创 2021-04-29 08:17:08 · 114 阅读 · 0 评论 -
PAT【甲级】1110
题目链接:PAT【甲级】1110题目简述:给出⼀个正整数n,表示有n个结点,这n个结点编号为0~n-1,然后再给出这n个结点的左右孩⼦,求问这棵树是 不是完全⼆叉树。#include<bits/stdc++.h>using namespace std;int n, v[20][2], vis[20], root, t = 0, pre;int main(){ cin >> n; for (int i = 0; i < n;i++){原创 2021-04-28 20:28:05 · 134 阅读 · 0 评论 -
PAT【甲级】1111
题目链接:PAT【甲级】1111题目简述:给⼀张地图,两个结点中的道路,既有距离属性也有时间属性,要求根据地图推荐两条/一条路线:一条是快速到达路线,一条是短距离的路线。超时的DFS版本代码【最后一个点超时】#include<bits/stdc++.h>using namespace std;int source, dest, min_time = -1, min_distance = -1, min_intersections = -1, min_dtime = -1;vecto原创 2021-04-28 17:34:46 · 171 阅读 · 0 评论 -
PAT【甲级】1112
题目链接:PAT【甲级】1112题目简述:键盘某些键卡住了,按⼀次重复k次,要求找出可能的坏键,并且输出正确的字符串。可能的键要求按照被发现的顺序输出。#include<bits/stdc++.h>using namespace std;int main(){ int k, pos = 1; string s, ans_s = ""; vector<char> ans; vector<bool> type(256, true);/原创 2021-04-27 18:05:47 · 151 阅读 · 0 评论 -
PAT【甲级】1114
题目链接:PAT【甲级】1114题目简述:给定每个⼈人的家庭成员和其⾃自⼰己名下的房产,要求统计出每个家庭的⼈人⼝口数、⼈人均房产⾯积及房产套数。家庭信息⾸先按⼈均⾯积降序输出,若有并列,则按成员编号的升序输出。#include<bits/stdc++.h>using namespace std;unordered_map<int, int> areas, sets, members;int father[10000], exist[10000], minID[10000原创 2021-04-27 12:13:31 · 107 阅读 · 0 评论 -
PAT【甲级】1115
题目链接:PAT【甲级】1115题目简述:给出二叉搜索树的定义,然后又给出一系列的数字,要求由这些数字按给出顺序插入构成的二叉搜索树中,最低两层的节点数和。#include<bits/stdc++.h>using namespace std;unordered_map<int, int> levelCount;//用来记录每层有多少节点int min_layer = 0;//表示最低的那层struct node{ int val, layer;//layer就是原创 2021-04-26 22:37:03 · 139 阅读 · 0 评论 -
PAT【甲级】1120
题目链接:PAT【甲级】1120题目简述:输入一串数字,问这串数字中可能的数位和有哪些。#include<bits/stdc++.h>using namespace std;int main(){ int n, t = 0; string s;//把输入数据当做是输入的字符串,这样会方便很多 set<int> ss; cin >> n; for (int i = 0; i < n;i++){ cin原创 2021-04-25 11:02:53 · 73 阅读 · 0 评论 -
PAT【甲级】1121
题目链接:PAT【甲级】1121题目简述:就是给了几对配偶的编号,又给了一串参加聚会的编号,问你在这个聚会中,有多少个单身汉。#include<bits/stdc++.h>using namespace std;int main(){ int n, m; string s1, s2; unordered_map<string, bool> match;//记录每个人是否出现过 unordered_map<string, string&g原创 2021-04-25 10:58:51 · 95 阅读 · 0 评论 -
PAT【甲级】1127
题目链接:PAT【甲级】1127题目简述:这个题目是给定一棵树的中序和后序序列,要求输出这棵树的层次遍历序列【但要求是“之”字型的层次遍历】#include<bits/stdc++.h>using namespace std;vector<int> pre(30), in(30), indexu, temp, ans;//indexu用来记录每个节点所在的层次,temp存储bfs时每层的节点序列,ans答案输出序列unordered_map<int, int>原创 2021-04-22 15:18:03 · 120 阅读 · 0 评论 -
PAT【甲级】1130
题目链接:PAT【甲级】1130题目简述:给了一颗表达式树,要求获得它的中缀表达式。#include<bits/stdc++.h>using namespace std;struct node{ int lnext, rnext; string val;}store[21];int n;string expw[21], ans;string inTraverse(int beg){ if(beg == -1) return "";//如果子树为空,则返原创 2021-04-21 18:29:51 · 91 阅读 · 0 评论 -
PAT【甲级】1131
题目链接:PAT【甲级】1131题目简述:给定一个地铁路线,问从初始位置到终止位置的最短路径,如果有多个最短路径那么找到那条转线最少的路径。#include<bits/stdc++.h>using namespace std;unordered_map<int, bool> vis;unordered_map<int, int> whichLine;vector<int> v[10000];vector<pair<int,int&g原创 2021-04-21 18:22:41 · 135 阅读 · 0 评论 -
PAT【甲级】1133
题目链接:PAT【甲级】1133题目简述:以整数的形式给定链表各节点的位置,让我们按一定形式规则输出新链表。#include<bits/stdc++.h>using namespace std;unordered_map<int, int> indice;struct node{ int address, value, next;};vector<node> ans, t1, t2;int main(){ int as, n, k;原创 2021-04-20 12:55:37 · 112 阅读 · 0 评论 -
PAT【甲级】1134
题目链接:PAT【甲级】1134题目简述:给定一个图的顶点数N,顶点编号为0 - N-1,又给了边数M,输入整个图。问:给定一组数据,由顶点构成,这些顶点能否引申出所有的边。#include<bits/stdc++.h>using namespace std;unordered_map<int, bool> vis;vector<pair<int, int>> graph;int main(){ int N, M, K, u, t;原创 2021-04-20 10:32:27 · 121 阅读 · 0 评论 -
PAT【甲级】1135
题目链接:PAT【甲级】1135题目简述:先给出了红黑树的定义,而后让你去判断一个给定的二叉搜索树的前序序列,这个二叉搜索树是否是红黑树。#include<bits/stdc++.h>using namespace std;int blackNum = -1, flag = -1;unordered_map<int, int> indice;struct node{ int num; bool isRed; bool operator <原创 2021-04-19 23:57:06 · 216 阅读 · 0 评论 -
PAT【甲级】1136
题目链接:PAT【甲级】1136题目简述:给定一个数。让你去判断它是不是回文数,不是的话能不能在10步转换内变成回文数。#include<bits/stdc++.h>using namespace std;string getAns(string s){ string t = s, r = ""; reverse(s.begin(), s.end()); int carry = 0, u; for (int i = s.size() - 1; i >原创 2021-04-19 09:54:19 · 97 阅读 · 0 评论 -
PAT【甲级】1137
题目链接:PAT【甲级】1137题目简述:给定正整数p,n,m,分别代表三组数据中每组数据的条目数。每组数据由id score的格式构成,第一组是编程分数,第二组是期中分数,第三组是期末分数。输出每个符合规定的学生的信息。#include<bits/stdc++.h>using namespace std;unordered_map<string, int> indice;struct node{ string id; int gp = -1, gm =原创 2021-04-19 09:08:03 · 59 阅读 · 0 评论 -
PAT【甲级】1138
题目链接:PAT【甲级】1138题目简述:给定一个正整数N(<=50000),又给出一棵树的前序和中序遍历序列。序列均由正整数构成。问这棵树的后序遍历序列的第一个节点值是多少。#include<bits/stdc++.h>using namespace std;unordered_map<int, int> indice;//记录前序序列中出现的数字在中序序列中的位置int ans;void getAns(vector<int>& pre, v原创 2021-04-18 22:53:16 · 140 阅读 · 0 评论 -
PAT【甲级】1140
题目链接:PAT【甲级】1140题目简述:给两个数字D和n,第⼀个序列是D,后⼀个序列描述前⼀个序列的所有数字以及这个数字出现的次数,⽐如D出现了1次,那么第⼆个序列就是D1,对于第⼆个序列D1,第三个序列这样描述: D出现1次,1出现1次,所以是D111……以此类推,输出第n个序列#include<bits/stdc++.h>using namespace std;int main(){ string s1, s2; int N; cin >> s原创 2021-04-17 10:35:05 · 102 阅读 · 0 评论 -
PAT【甲级】1141
题目链接:PAT【甲级】1141题目简述:有点和1012这个题目相似,就是给定考生的id、分数、所属机构,让我们去求解一个排名表。这个排名表每项是由rank、机构名称、总分、人数构成,排序时需按照一定的优先级进行排列。#include<bits/stdc++.h>using namespace std;struct node{ string institution; int score; int total; bool operator < (co原创 2021-04-17 09:32:35 · 101 阅读 · 0 评论 -
PAT【甲级】1142
题目链接:PAT【甲级】1142题目简述:这个题目还是依旧给个图。在题目中给了一个名为clique的定义,即:它为所给图所有节点的子集,且在这个集合中的节点两两邻接。如果再加入其它的节点还满足两两相连,那么这个clique就是Not Maximal,否则就是Yes。#include<bits/stdc++.h>using namespace std;vector<vector<int>> graph(201, vector<int>(201, 0))原创 2021-04-16 22:19:58 · 94 阅读 · 0 评论 -
牛客网真题PAT【甲级】1002
题目链接:牛客网甲级真题1002题目简述:给一个图,每个节点处有一个正整数欢乐值。让你找出从起始点到终止点的最短路径,如果路径不止一条,那么找出沿途欢乐总值最大的那条路径;如果还是一样,那么再找出平均下来每个节点的欢乐值最大的那条路径。超时的代码#include<bits/stdc++.h>using namespace std;vector<int> preStore(202, 0), lowcost(202, 0x3f3f3f3f), ans_happiness(原创 2021-04-15 17:41:35 · 294 阅读 · 0 评论 -
PAT【甲级】1144
题目链接:PAT【甲级】1144题目简述:就是输入一串int类型的数字,询问缺失的最小的正数是哪个?#include<bits/stdc++.h>using namespace std;vector<int> v;int main(){ int N, c; cin >> N; for (int i = 0; i < N;i++){ cin >> c; if(c > 0)原创 2021-04-15 10:49:25 · 91 阅读 · 0 评论 -
PAT【甲级】1145
题目链接:PAT【甲级】1145题目简述:就是先给一串数字,分别是表长,要插入表中的数据规模,要查询数据的规模。如果表长不是素数的话,则还要求改变为大于所给数字最小的素数。并且使用(正数)平方探测法进行冲突处理。#include<bits/stdc++.h>using namespace std;vector<int> table;int getPrime(int a){ while(a){ int i = 2; for (; i原创 2021-04-15 10:38:33 · 188 阅读 · 0 评论 -
PAT【甲级】1147
题目链接:PAT【甲级】1147题目简述:这个题目和1155还有点像。1155是让你去判断是哪种堆后,进行遍历序列的输出;而这个是要求去求得它的后序遍历,这个稍微简单一些,直接套递归版的后序遍历框架即可。#include<bits/stdc++.h>using namespace std;void postOrder(vector<int>& tree, int beg, int N){ if(beg > N) return; postOrde原创 2021-04-14 18:46:35 · 107 阅读 · 0 评论 -
PAT【甲级】1146
题目链接:PAT【甲级】1146题目简述:给定一个有向图,问所查询的几组序列中,不是该图的拓扑排序的是哪组。#include<bits/stdc++.h>using namespace std;unordered_map<int, int> indegree;vector<vector<int>> graph;vector<int> ans;int main(){ int N, M, K; int c, c1, c原创 2021-04-14 18:42:31 · 109 阅读 · 0 评论 -
PAT【甲级】1148
题目链接:PAT【甲级】1148题目简述:“狼人杀”简单版。给定一个正整数N ,表示玩家人数。然后下面输入N个整数Ni(1<=i<=N),每个位置i(1<=i<=N)的数字,表示的意义是:第i个玩家认为第abs(Ni)玩家是狼或者人(因为Ni可正可负,为正表示人,为负表示狼)。现已知只有两匹狼,且有两个玩家说谎,且为一个狼和一个人。#include<bits/stdc++.h>using namespace std;int main(){ int N;原创 2021-04-13 16:32:09 · 141 阅读 · 0 评论 -
PAT【甲级】1150
题目链接:PAT【甲级】1150题目简述:输入一个N(节点数),M(边数),然后接下来输入c1 c2 value格式的M组数据,value就是该条边的值。而后呢去进行K组查询,每一组给定一个将要遍历的总节点数u,然后给出u个遍历节点,输出其实哪一种环,如果是环的话输出他的路径值;否则输出不是环,路径值为NA。最后再输出这K组中,最短路径的环。#include<bits/stdc++.h>using namespace std;int graph[201][201], vis[201];原创 2021-04-12 11:40:50 · 77 阅读 · 0 评论 -
PAT【甲级】1151
题目链接:PAT【甲级】1151题目简述:给定一个二叉树的中序遍历序列和前序遍历序列,序列由二叉树的各节点值构成,且各节点值不同。数值在int表示范围内。然后问:给定的两个值,是否是节点值?如果是,那么他们的最近公共祖先的节点值是多少?#include<bits/stdc++.h>using namespace std;vector<int> preOrder(10001), inOrder(10001);unordered_map<int, int> ind原创 2021-04-11 22:58:34 · 151 阅读 · 0 评论 -
PAT【甲级】1154
题目链接:PAT【甲级】1154题目简述:给定几条由vertex vertes格式表示的边,再给定一组数字,表示节点的颜色。来让判断这个图是不是满足各条边的两端节点颜色都不同,如果满足则输出这个图总共使用了几种颜色,否则输出“No”。#include<bits/stdc++.h>using namespace std;int v_color[10001];unordered_map<int, pair<int, int>> graph;unordered_m原创 2021-04-10 11:23:05 · 104 阅读 · 0 评论 -
PAT【甲级】1155
题目链接:PAT【甲级】1155题目简述:按完全二叉树层次遍历的方式,给定一行数字。要求去判断给定的这些数字(也即这个二叉树)是不是个二叉堆,如果是堆是最大堆还是最小堆。#include<bits/stdc++.h>using namespace std;int N, batch = 0;long long table[1000] = {0};vector<vector<int>> store(501);string checkAns[3] = {"Max原创 2021-04-09 17:31:02 · 102 阅读 · 0 评论 -
PAT【甲级】1013
题目链接:PAT【甲级】1013题目简述:输入N,M,K三个正整数(N为城市数量,M为城市间道路数量,K为要查询的案例数),然后输入M组格式为c1 c2的数字,分别代表两个城市之间连有通路。下面则数输入K个数,表示删除这个节点后,还需要建立多少条路来使得各城市节点互通。#include<bits/stdc++.h>using namespace std;vector<vector<int>> graph(1000, vector<int>(1000,原创 2021-04-09 11:45:01 · 260 阅读 · 0 评论 -
PAT【甲级】1012
题目链接:PAT【甲级】1012题目简述:见题目。#include<bits/stdc++.h>using namespace std;vector<vector<int>> grades(4);vector<vector<int>> v(2002, vector<int>(4,0));unordered_map<string, int> mymap;string mmp = "ACME";struct原创 2021-04-08 22:57:49 · 100 阅读 · 0 评论