
PAT题解
包含所有PAT题目的题解
笨笨sg
NEU-CS
展开
-
1055 The World‘s Richest(25分)
给定一系列富人的财富记录(包括财富值、年龄、姓名),你需要根据输入的年龄范围输出该年龄段内最有钱的N位富豪。按照题目要求自定义一个排序函数,模拟即可。原创 2024-08-16 19:08:05 · 163 阅读 · 0 评论 -
1057 Stack(30分)
插入后,如果两个堆的大小相差超过1,则将多余元素从较大的堆中移动到较小的堆中,以保持两个堆的平衡。大根堆(max-heap): 存储较小的一半数据,堆顶是这一部分的最大值。小根堆(min-heap): 存储较大的一半数据,堆顶是这一部分的最小值。模拟栈的基本操作(入和弹出),同时新加一项操作——输出栈内目前的中位数。当插入一个新元素时,如果它比大根堆的堆顶小,插入大根堆;如果堆的大小不同,中位数是元素更多的那个堆的堆顶。如果两个堆的大小相同,中位数是两个堆顶的平均值。的元素的数量(频率前缀和)。原创 2024-08-16 21:45:59 · 248 阅读 · 0 评论 -
1058 A+B in Hogwarts
按照格式求两个时间之和。原创 2024-08-17 16:27:12 · 231 阅读 · 0 评论 -
1056 Mice and Rice(25分)
模拟一个分组淘汰赛的过程,最终为每个选手确定排名。通过多轮比赛,在每一轮中将选手分组,每组选择一个得分最高的选手晋级到下一轮,并给其他选手分配排名,直到最终决出冠军。最终输出每个选手的排名。原创 2024-08-16 19:16:43 · 150 阅读 · 0 评论 -
1063 Set Similarity(25分)
直接调用STL的set_intersection和set_union求交集和并集即可。按照题目要求计算两两集合之间的相似度。原创 2024-08-17 17:45:43 · 170 阅读 · 0 评论 -
1059 Prime Factors
对一个整数进行质因数分解。原创 2024-08-17 16:31:37 · 198 阅读 · 0 评论 -
1062 Talent and Virtue(25分)
按照规则对结构体数组进行排序。原创 2024-08-17 17:25:17 · 165 阅读 · 0 评论 -
1067 Sort with Swap(0, i)(25分)
但是我们交换的基准是0,因此先用0交换一下(变为0->6、5->0、6->5),0的参与使得交换次数+1。因此这种情况下需要交换的次数=环的长度+1。由于只能两两之间进行交换,从0出发,0作为哨兵,进行交换,也即swap(v[0],v[v[0]])直到最终v[0]=0。下面是一个简单的例子,可以看到最后形成的环的长度是4,需要交换的次数=环的长度-1。给出一个n个数的序列,数字为0~n-1的乱序,每次用两两交换的方式而且只能用0和另一个数交换,使序列变成有序的,问最少需要多少步骤。综合考虑这两个情况即可。原创 2024-08-17 21:47:25 · 337 阅读 · 0 评论 -
1064 Complete Binary Search Tree(30分)
输入的序列可能是无序的,先做一个排序得到的就是完全二叉搜索树的中序序列。假设把树按从左到右、从上到下的顺序依次编号,根节点为0,则从根结点root = 0开始中序遍历,root结点的左孩子下标是root*2+1,右孩子下标是root*2+2。接下来就按照中序遍历的模式一一对应得到层序即可。给定一个完全二叉搜索树,求它的层序。原创 2024-08-17 18:02:02 · 214 阅读 · 0 评论 -
1066 Root of AVL Tree(25分)
给定插入序列,构建AVL(二叉平衡树),输出AVL树的根结点的值。结合4种旋转操作构建即可。原创 2024-08-17 20:40:21 · 196 阅读 · 0 评论 -
1060 Are They Equal
以科学计数法的形式表示两个数字(最大为1e100),按规定保留有效数字并判断是否相等。3、将第一个不为0数字后的数字加入temp(有效数字)。4、第1点减第2点为指数值。(还需要分情况讨论)5、判断指数和有效数字是否相等即可。2、找某数第一个不为0数字的位置。原创 2024-08-17 17:00:35 · 199 阅读 · 0 评论 -
1065 A+B and C (64bit)(20分)
要考虑越界的问题,不越界的情况下正常比较大小即可。大整数相加,比较大小。原创 2024-08-17 20:35:05 · 161 阅读 · 0 评论 -
1061 Dating
对一个无规律字符串进行解码。原创 2024-08-17 17:18:23 · 147 阅读 · 0 评论 -
2023春季(模拟考试)
本套题的难度介于2023夏季和2023秋季之间,主要是2和4有点麻烦,第2题容易超时。整体来说还好。原创 2023-11-29 23:46:29 · 1091 阅读 · 0 评论 -
1051 Pop Sequence(25分)
例如,当 N=7,M=5 时,1, 2, 3, 4, 5, 6, 7可能是该栈的弹出序列,而 3, 2, 1, 7, 5, 6, 4 不可能是该栈的弹出序列。给定一个最多能存 M 个数字的栈,将 1∼N 按顺序压入栈中,过程中可随机弹出栈顶元素。当 N 个数字都经历过入栈和出栈后,我们按照元素出栈的顺序,可以得到一个弹出序列。现在给定一系列 1∼N 的随机排列序列,请你判断哪些序列可能是该栈的弹出序列。原创 2023-11-29 13:27:20 · 410 阅读 · 0 评论 -
2022冬季(模拟考试)
通过下面的图可以看到,这套卷子主要是1和4比较难,其中1其实并不难,只是英文题面相比于中文题面少了一句话,所以才造成很多人题目读错,通过率较低,对于2和3来说,其实都属于常规题。第4题就比较麻烦一些,但是也不是很难。整套卷子的难度并不是很大,但是想要AK也不容易。最后这套卷子得了85分(第一题9分(读错题了)+最后一题扣了4分(静态建树,没开辟下标,直接用值作为下标了))原创 2023-12-02 00:57:25 · 889 阅读 · 0 评论 -
1053 Path of Equal Weight(30分)
给出所有结点的权重和一个定值s,和各个有子结点的结点的子节点编号,求该树路径权值和等于给定定值s的各个结点的权值。原创 2023-12-01 11:22:43 · 399 阅读 · 0 评论 -
2023秋季(模拟考试)
本套是我上次考过的一套,当时考的很差,这次模拟还可以,个人觉得这套的难度是大于2023夏季的。可以看到,第2题比较难,我也将重点讲解本题及其类型题的简单思路。有时候考试没遇到自己倾向的题就很难受。原创 2023-11-29 11:43:00 · 2045 阅读 · 2 评论 -
1140 Look-and-say Sequence(20分)
后⼀个序列描述前⼀个序列的所有数字以及这个数字出现的次数,⽐如D出现了。因为N最大为40,所以可以直接冲。次,那么第⼆个序列就是。原创 2023-11-30 17:39:06 · 327 阅读 · 0 评论 -
1052 Linked List Sorting(25分)
有5个结点,输入第一个结点的地址,下面5行分别是结点的地址,数据域,next域,给这五个结点按数据域的大小从小到大排列,重新建立链表,输出有多少个有效的结点,和第一个结点的地址,然后输出各个结点的地址,数据域和next域。因为可能有不在链表中的结点,所以要先建立链表,然后排序输出。:可能是因为没建立链表,样例中还有链表外的数据。原创 2023-11-29 13:31:35 · 445 阅读 · 0 评论 -
1054 The Dominant Color(20分)
所以应该使用string存储,先用map存,然后存到数组里排个序。其实就是找出一个矩阵中出现次数最多的元素。原创 2023-12-01 11:26:18 · 401 阅读 · 0 评论 -
1141 PAT Ranking of Institutions(25分)
根据TWS(B级score/1.5,A级score*1.0,T级score*1.5,每个机构的所有考生的成绩之和,最后取整!)进行排序,TWS相同(取整后)的机构排名相同;另外,强制转化为int型的操作要放到对每个学校总得分的时候做,不能一个学生一个学生做!:要么是你没用double,要么是你排序的时候没对分数取整。若排名相同,输出顺序按照Ns(各机构参赛人数)增序输出;若Ns仍相同,输出顺序按照机构代码字母表顺序输出;原创 2023-11-30 17:42:47 · 379 阅读 · 0 评论 -
1136 A Delayed Palindrome(20分)
如果不是就将其倒转再相加,直至得到回文数或等于10次位置。给出一个不超过1000位的数字,判断其是否为。用字符串存储数字,编写字符串相加函数即可。原创 2023-11-26 15:40:16 · 413 阅读 · 0 评论 -
1137 Final Grading(25分)
模拟即可,注意本题为四舍五入,可以使用round函数;向下取整可以用floor,向上取整用ceil函数。的格式构成,第一组是编程分数,第二组是期中分数,第三组是期末分数。输出每个符合规定的学生的信息。,分别代表三组数据中每组数据的条目数。原创 2023-11-26 15:44:06 · 423 阅读 · 0 评论 -
1139 First Contact(30分)
A喜欢B,但是A不会直接找B,A要找他的朋友且同性别的C,然后C去找和B的朋友且同性别的D,让D去联系B,给定 A和B,求C和D有哪些。先对每个人都将每个人的朋友都存到一个集合中形成一个map,然后对A和B的集合开始遍历。注意还要另外用一个map(哈希表)记录朋友关系。:注意C不能B,A不能是D这一个隐含条件。话说这道题没考虑一种情况,原创 2023-11-28 16:37:12 · 463 阅读 · 0 评论 -
2023夏季(模拟考试)
用二维数组模拟地图,然后能直走就直走,直走不了就左转,左转后进入死胡同就g。这个最后只得了19分,有两个超时了,还有一个答案错误,做法可能比较繁琐了。先建树,然后用dfs,题目中的degree指的是结点的度。很一致,但是人家AC了。原创 2023-11-25 20:54:55 · 1007 阅读 · 0 评论 -
1138 Postorder Traversal(25分)
给定二叉树的先序序列和中序序列后,需要输出后序序列第一个数字。可以建树也可以不建树。原创 2023-11-28 15:17:49 · 408 阅读 · 0 评论 -
1050 String Subtraction(20分)
给定两个字符串 S1 和 S2,S=S1−S2 定义为将 S1 中包含的所有在 S2 中出现过的字符删除后得到的字符串。直接用unordered_map存一下S2,然后再直接对S1遍历一下就行。你的任务就是计算 S1−S2。原创 2023-11-27 12:25:22 · 392 阅读 · 0 评论 -
1049 Counting Ones(30分)
我们将数字划分为左部left、现在关注的位置now(只有一位)、右部right。pos表示当前位置1会出现的次数,a表示now所代表的位数(比如个位数、百位数等)。则有如下公式:原创 2023-11-27 11:45:11 · 897 阅读 · 0 评论 -
1031 Hello World for U(20分)
也就是说,必须按照原始顺序输出字符,左垂直线自上而下共有 n1 个字符,底部行从左到右共有 n2 个字符,右垂直线自下而上共有 n3 个字符。另外,必须满足 n1=n3=max{k|k≤n2对于所有3≤n2≤N} 以及 n1+n2+n3−2=N。故 n1=n3=(N+2)/3 且 n2=n1+(N+2)%3。然后按照 U 字形顺序将字符串填入数组,最后输出数组即可。给定一个长度为 N 的字符串,请你将它以 U 形输出。n1<=N-2*n1+2 即 n1<=(N+2)/3。原创 2023-11-09 14:33:14 · 84 阅读 · 0 评论 -
1032 Sharing(25分)
另外,输出的时候要注意保证输出地址是5位,可以使用setw(5)原创 2023-11-09 15:31:00 · 98 阅读 · 0 评论 -
1125 Chain the Ropes(25分)
给出一些绳子的段,每次选两段分别对折成环拼在一起成为一段,对折后绳段长度减半。要求最终绳子的长度最长。输出最终长度(向下取整)贪心,从小到大排序,然后相加减半即可。原创 2023-11-14 18:27:35 · 84 阅读 · 0 评论 -
1123 Is It a Complete AVL Tree(30分)
发现不平衡时就需要处理,第1种情况只要简单的右旋,第4种情况只需左旋一下,第2种情况需要先对A的左子树左旋一下,然后对A右旋,同理第3种情况需要对A的右子树右旋一下,然后对A左旋就可以啦~~判断是不是完全二叉树,就看在出现了一个孩子为空的结点之后是否还会出现孩子结点不为空的结点,如果出现了就不是完全二叉树。给定一个序列,按顺序插入到空树中,输出层序。新来的结点插入到A的左子树的左子树。新来的结点插入到A的左子树的右子树。新来的结点插入到A的右子树的左子树。新来的结点插入到A的右子树的右子树。原创 2023-11-12 11:27:26 · 82 阅读 · 0 评论 -
1122 Hamiltonian Cycle(25分)
给出n个节点m条边构成一个无向图,接下来给出k个待查询路径,看是否可以构成一个简单回路。(1)题目中n+1==k?(2)n个点是否都存在?(3)路径首尾是否相连?(4)路径是否连通?原创 2023-11-12 11:10:48 · 116 阅读 · 0 评论 -
1124 Raffle for Weibo Followers(20分)
每个人最多中奖一次,如果他已经中奖过了,又在中奖的位置,那么奖顺延给下一个人。按输入顺序输出中奖的人的名字。个人(包括他)开始,每。原创 2023-11-14 18:24:41 · 71 阅读 · 0 评论 -
1035 Password(20分)
对字符串中容易混淆的字符进行替换,并按照指定顺序(和输入顺序一致)和格式(is、are、account单数或者复数)输出。测试点2:是因为没有考虑格式(is、are、account单数或者复数)输出,具体见后两个样例。还有一个就是unorder_map并不能保证和输入顺序一致。原创 2023-11-13 11:33:40 · 100 阅读 · 0 评论 -
1120 Friend Numbers(20分)
数,其所有位的和是它的ID,ID相同的数叫朋友数。个数字,求有几个不同的ID,并将这些ID排序输出。用map存储ID即可,确保唯一性。原创 2023-11-10 09:54:01 · 86 阅读 · 0 评论 -
1033 To Fill or Not to Fill(25分)
但是由于汽车的油箱容量有限,我们只能不时的寻找加油站去加油。不同的加油站的油价可能不同。假设最开始油箱是空的,如果无法到达目的地,则输出 The maximum travel distance = X ,其中 X 是可以行驶的最大距离,保留两位小数。第一行包含四个正整数,Cmax ,油箱的最大容量,D ,杭州到目的地城市的距离,Davg ,每单位汽油可供汽车行驶距离,N ,加油站总数。接下来 N 行,每行包含一对非负数描述一个加油站的相关信息,Pi ,每单位汽油价格,Di ,该加油站与杭州的距离。原创 2023-11-11 16:56:29 · 89 阅读 · 0 评论 -
1034 Head of a Gang(30分)
给定N条通话记录和一个限制K。每条通话记录包含了两个名字和一个通话时间,相互联系的人同属于一个帮派。题目要求,只有人数超过2人并且总通话时长超过K的集体才能算作帮派Gang,并且帮派内部通话时长最长的人是帮派首领Boss。再贴一个看错题(以为姓名只能是AAA这种都一样的形式,最后导致只能过两个点)原创 2023-11-11 17:03:04 · 101 阅读 · 0 评论 -
1121 Damn Single(25分)
给出N对夫妇,再给出M个参加party的人,求出其中单身狗的个数并按序输出单身狗的序号。(注意若夫妇没有共同参加此party,也算作单身狗)原创 2023-11-10 10:01:57 · 106 阅读 · 0 评论