PAT题解
包含所有PAT题目的题解
笨笨sg
东B计科
展开
-
2023春季(模拟考试)
本套题的难度介于2023夏季和2023秋季之间,主要是2和4有点麻烦,第2题容易超时。整体来说还好。原创 2023-11-29 23:46:29 · 948 阅读 · 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 · 348 阅读 · 0 评论 -
2022冬季(模拟考试)
通过下面的图可以看到,这套卷子主要是1和4比较难,其中1其实并不难,只是英文题面相比于中文题面少了一句话,所以才造成很多人题目读错,通过率较低,对于2和3来说,其实都属于常规题。第4题就比较麻烦一些,但是也不是很难。整套卷子的难度并不是很大,但是想要AK也不容易。最后这套卷子得了85分(第一题9分(读错题了)+最后一题扣了4分(静态建树,没开辟下标,直接用值作为下标了))原创 2023-12-02 00:57:25 · 799 阅读 · 0 评论 -
1053 Path of Equal Weight(30分)
给出所有结点的权重和一个定值s,和各个有子结点的结点的子节点编号,求该树路径权值和等于给定定值s的各个结点的权值。原创 2023-12-01 11:22:43 · 345 阅读 · 0 评论 -
2023秋季(模拟考试)
本套是我上次考过的一套,当时考的很差,这次模拟还可以,个人觉得这套的难度是大于2023夏季的。可以看到,第2题比较难,我也将重点讲解本题及其类型题的简单思路。有时候考试没遇到自己倾向的题就很难受。原创 2023-11-29 11:43:00 · 1820 阅读 · 2 评论 -
1140 Look-and-say Sequence(20分)
后⼀个序列描述前⼀个序列的所有数字以及这个数字出现的次数,⽐如D出现了。因为N最大为40,所以可以直接冲。次,那么第⼆个序列就是。原创 2023-11-30 17:39:06 · 282 阅读 · 0 评论 -
1052 Linked List Sorting(25分)
有5个结点,输入第一个结点的地址,下面5行分别是结点的地址,数据域,next域,给这五个结点按数据域的大小从小到大排列,重新建立链表,输出有多少个有效的结点,和第一个结点的地址,然后输出各个结点的地址,数据域和next域。因为可能有不在链表中的结点,所以要先建立链表,然后排序输出。:可能是因为没建立链表,样例中还有链表外的数据。原创 2023-11-29 13:31:35 · 379 阅读 · 0 评论 -
1054 The Dominant Color(20分)
所以应该使用string存储,先用map<string,int>存,然后存到数组里排个序。其实就是找出一个矩阵中出现次数最多的元素。原创 2023-12-01 11:26:18 · 344 阅读 · 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 · 327 阅读 · 0 评论 -
1136 A Delayed Palindrome(20分)
如果不是就将其倒转再相加,直至得到回文数或等于10次位置。给出一个不超过1000位的数字,判断其是否为。用字符串存储数字,编写字符串相加函数即可。原创 2023-11-26 15:40:16 · 372 阅读 · 0 评论 -
1137 Final Grading(25分)
模拟即可,注意本题为四舍五入,可以使用round函数;向下取整可以用floor,向上取整用ceil函数。的格式构成,第一组是编程分数,第二组是期中分数,第三组是期末分数。输出每个符合规定的学生的信息。,分别代表三组数据中每组数据的条目数。原创 2023-11-26 15:44:06 · 363 阅读 · 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 · 405 阅读 · 0 评论 -
2023夏季(模拟考试)
用二维数组模拟地图,然后能直走就直走,直走不了就左转,左转后进入死胡同就g。这个最后只得了19分,有两个超时了,还有一个答案错误,做法可能比较繁琐了。先建树,然后用dfs,题目中的degree指的是结点的度。很一致,但是人家AC了。原创 2023-11-25 20:54:55 · 917 阅读 · 0 评论 -
1138 Postorder Traversal(25分)
给定二叉树的先序序列和中序序列后,需要输出后序序列第一个数字。可以建树也可以不建树。原创 2023-11-28 15:17:49 · 354 阅读 · 0 评论 -
1050 String Subtraction(20分)
给定两个字符串 S1 和 S2,S=S1−S2 定义为将 S1 中包含的所有在 S2 中出现过的字符删除后得到的字符串。直接用unordered_map存一下S2,然后再直接对S1遍历一下就行。你的任务就是计算 S1−S2。原创 2023-11-27 12:25:22 · 338 阅读 · 0 评论 -
1049 Counting Ones(30分)
我们将数字划分为左部left、现在关注的位置now(只有一位)、右部right。pos表示当前位置1会出现的次数,a表示now所代表的位数(比如个位数、百位数等)。则有如下公式:原创 2023-11-27 11:45:11 · 824 阅读 · 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 · 31 阅读 · 0 评论 -
1032 Sharing(25分)
另外,输出的时候要注意保证输出地址是5位,可以使用setw(5)原创 2023-11-09 15:31:00 · 49 阅读 · 0 评论 -
1125 Chain the Ropes(25分)
给出一些绳子的段,每次选两段分别对折成环拼在一起成为一段,对折后绳段长度减半。要求最终绳子的长度最长。输出最终长度(向下取整)贪心,从小到大排序,然后相加减半即可。原创 2023-11-14 18:27:35 · 34 阅读 · 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 · 28 阅读 · 0 评论 -
1122 Hamiltonian Cycle(25分)
给出n个节点m条边构成一个无向图,接下来给出k个待查询路径,看是否可以构成一个简单回路。(1)题目中n+1==k?(2)n个点是否都存在?(3)路径首尾是否相连?(4)路径是否连通?原创 2023-11-12 11:10:48 · 69 阅读 · 0 评论 -
1124 Raffle for Weibo Followers(20分)
每个人最多中奖一次,如果他已经中奖过了,又在中奖的位置,那么奖顺延给下一个人。按输入顺序输出中奖的人的名字。个人(包括他)开始,每。原创 2023-11-14 18:24:41 · 23 阅读 · 0 评论 -
1035 Password(20分)
对字符串中容易混淆的字符进行替换,并按照指定顺序(和输入顺序一致)和格式(is、are、account单数或者复数)输出。测试点2:是因为没有考虑格式(is、are、account单数或者复数)输出,具体见后两个样例。还有一个就是unorder_map并不能保证和输入顺序一致。原创 2023-11-13 11:33:40 · 40 阅读 · 0 评论 -
1120 Friend Numbers(20分)
数,其所有位的和是它的ID,ID相同的数叫朋友数。个数字,求有几个不同的ID,并将这些ID排序输出。用map存储ID即可,确保唯一性。原创 2023-11-10 09:54:01 · 39 阅读 · 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 · 38 阅读 · 0 评论 -
1034 Head of a Gang(30分)
给定N条通话记录和一个限制K。每条通话记录包含了两个名字和一个通话时间,相互联系的人同属于一个帮派。题目要求,只有人数超过2人并且总通话时长超过K的集体才能算作帮派Gang,并且帮派内部通话时长最长的人是帮派首领Boss。再贴一个看错题(以为姓名只能是AAA这种都一样的形式,最后导致只能过两个点)原创 2023-11-11 17:03:04 · 32 阅读 · 0 评论 -
1121 Damn Single(25分)
给出N对夫妇,再给出M个参加party的人,求出其中单身狗的个数并按序输出单身狗的序号。(注意若夫妇没有共同参加此party,也算作单身狗)原创 2023-11-10 10:01:57 · 41 阅读 · 0 评论 -
1036 Boys vs Girls(25分)
按照成绩和性别排序,找到女生中成绩最好的男生中成绩最差的。原创 2023-11-13 11:36:46 · 28 阅读 · 0 评论 -
1041 Be Unique(20分)
找出第一个只出现一次的数字。原创 2023-11-19 14:45:36 · 33 阅读 · 0 评论 -
1127 ZigZagging on a Tree(30分)
先由递归由中序和后序建树,建树的同时更新每个结点所在的层数,然后在层序输出的时候,只需要将对应层次的结点压到对应层次的数组中即可。由中序和后序求“不寻常的层序”,这个“层序”的要求是按照“S”型号输出,也就是左->右->左->右->......。原创 2023-11-16 21:19:13 · 34 阅读 · 0 评论 -
1129 Recommendation System(25分)
完成排序,每次循环输出前k个(若有)。为了O(1)时间找到此前出现次数,单独设置一个数组记录。每次更新数据后,删除原node,插入新node。写一个推荐系统,用户点击一个数字后,推荐k个数字,对应于此前点击最频繁的数字,如果两个数字频率相同,则输出较小的。设置一个数据结构node,重载比较符号。每次更新后再次排序时间开销太大了。原创 2023-11-18 19:04:14 · 27 阅读 · 0 评论 -
1039 Course List for Student(25分)
直接用map<string,vector<int>>即可,学生-课程s的映射关系。给定几门课以及选了这几门课的人,然后求某某学生选的课包含哪些。原创 2023-11-17 10:35:23 · 32 阅读 · 0 评论 -
1126 Eulerian Path(25分)
给定一些结点以及这些结点之间的路径(简单图,不考虑自环和平行边),首先输出每个结点的度数,接着判断该图是否为欧拉图或者半欧拉图。原创 2023-11-16 21:14:11 · 33 阅读 · 0 评论 -
1042 Shuffling Machine(20分)
有54张扑克牌,初始时排列顺序分别是S1…J1 J2,现在给出一个重复洗牌次数k,然后给出54个数字,每个位置i上都放置了一个数字,初始时S1…对于每次洗牌,将位置i上的牌移动到位置i放置的数字所代表的位置上。例如有3张牌a,b,c,初始时a在位置1,b在位置2,c在位置3,洗牌序列是3,1,2,重复两次。那么第一次重复是将a移动到位置3,将b移动到位置1,将c移动到位置2,即变为b,c,a,第二次重复是将b移动到位置3,将c移动到位置1,将a移动到位置2,即变为c,a,b。原创 2023-11-19 14:52:57 · 29 阅读 · 0 评论 -
1037 Magic Coupon(25分)
给定两个集合,集合中的数为任意整数,请你每次都从集合A和B中取一个进行乘积,不断加和到sum,已经选取过的元素不能再次选取,请输出sum的最大值。对集合中的元素进行排序,从左向右依次是:大正数、小正数、0、小负数、大负数,也就是说将绝对值大的负数放在前面。然后用一个双指针从头遍历即可。:考察的是0,对于0来说,遍历到的时候直接跳过即可。原创 2023-11-15 13:49:56 · 48 阅读 · 0 评论 -
1040 Longest Symmetric String(25分)
因为i和j如果是按照下标开始枚举的话,更新dp[l][r]时,dp[l+1][r-1]可能还没更新。所以i和j要按照字符串长度,从小到大来枚举。创建一个二维dp数组,bool dp[i][j],用来标记从i到j下标的区间内,该子串是否为回文串。s[l]==s[r],则dp[l][r]=dp[l+1][r-1], ans=r-l+1;考虑到有奇数串和偶数串的情况,所以要初始化子串长度为1和2的情况。=s[r],则dp[l][r]=false;分两种情况考虑,一种是。参考了柳神的题解博客。原创 2023-11-17 10:43:26 · 44 阅读 · 0 评论 -
1128 N Queens Puzzle(20分)
例如,图1的棋盘摆放可以用 (4, 6, 8, 2, 7, 1, 3, 5) 来表示,它是解决八皇后问题的一种合理摆放方案。图2的棋盘摆放可以用 (4, 6, 7, 2, 8, 1, 9, 5, 3) 来表示,它并不是解决九皇后问题的一种合理摆放方案。因为题目规定了两个皇后不可能同时在一列上,所以我们只需要考虑是否在同一行和是否在同一个对角线上两个问题。可以用set解决是否在同一行上,是否在同一个对角线上(判断两点之间的斜率的绝对值是否为1,为1表示共线)(这个复杂度可能比较高,但是样例没卡掉)原创 2023-11-18 18:58:57 · 31 阅读 · 0 评论 -
1038 Recover the Smallest Number(30分)
首先给出一个数字n,然后是n个数字段,要求输出n个数字段组成的最小数,同时,若第一位是零则舍去。原创 2023-11-15 13:53:04 · 25 阅读 · 0 评论 -
1133 Splitting A Linked List(25分)
要求将链表重排,按顺序为元素【小于0】【在。注意a,b,c三部分可能为空。给一个链表的头地址和数字。之间】【大于K】三部分.原创 2023-11-22 15:15:31 · 26 阅读 · 0 评论 -
1130 Infix Expression(25分)
什么时候输出“(”和“)”呢,在进行中序遍历的时候,在执行下一层遍历前和后,若遍历到一个结点,如果其左右子结点至少有一个不为空就分别输出“(”和“)”。就是二叉树的中序遍历而已,DFS就行。最外层不需要括号,这时手动遍历根结点即可。那么如何寻找根结点的下标呢,原创 2023-11-20 12:18:42 · 36 阅读 · 0 评论