PAT Advanced
pat进阶题目
weixin_42302528
这个作者很懒,什么都没留下…
展开
-
PAT A1145 Hashing - Average Search Time
题目难度:两颗半星题目大意:给出hash的插入序列,要求挨个插入,如果有不能插入的,那么应该选择输出无法插入,然后给出n个查询的数值,最后给出需要的平均查找长度。题目坑点:自己对于二次探测再散列的定义不熟悉,导致一出代码写错,然后最后一个测试点过不去。。。我晕。。。写代码一定要仔细啊代码如下:#include<iostream>#include<cmath>#d...原创 2020-03-26 20:31:39 · 94 阅读 · 0 评论 -
PAT A1144 The Missing Number
题目难度:一颗星题目大意:给出一串序列,要求给出序列中未出现的最小的正整数。题目坑点:没有啥难度,水题水过代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack>#include<algorithm>#include<map>...原创 2020-03-26 17:25:18 · 91 阅读 · 0 评论 -
PAT A1143 Lowest Common Ancestor
题目难度:三颗星题目大意:给出一个二叉搜索树的前序遍历的结果,要求输出给定两个元素的最低的父节点。题目坑点:刚开始以为需要建树去做,但是自己发现这个有点儿规律。。。但是还是没有想的起来。。紧张紧张。。从前往后遍历的第一个介于两者之间的一个数就是需要的节点。这个是由二叉排序树的性质决定的。代码如下:#include<iostream>#include<set>#i...原创 2020-03-26 17:15:00 · 66 阅读 · 0 评论 -
PAT A1142 Maximal Clique
题目难度:两颗星题目大意:给出一个图的结构,然后给出一系列的查询,问给出查询的序列,是否是图中的极大完全图(自己瞎起的名字),也就是要求包含尽可能多的边的完全图的子图。题目坑点:刚开始看到数据量,小于两百,感觉还好,但是又觉得循环可能会导致时间复杂度很高,事实证明,居然一边提交ac。。代码如下:#include<iostream>#include<stdlib.h>...原创 2020-03-26 15:44:52 · 76 阅读 · 0 评论 -
PAT A1140 Look-and-say Sequence
题目难度:两颗星题目大意:给出一个数字,然后要求根据规定的要求读出数字,然后循环N次 ,最后给出答案。题目坑点:没难度,直接循环就好,但是我看为啥会显示少一个循环O(∩_∩)O哈哈~ 不知道为啥。。。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack&g...原创 2020-03-26 15:07:51 · 59 阅读 · 0 评论 -
PAT A1141 PAT Ranking of Institutions
题目难度:两颗半星题目大意:给出一串成绩提交的记录,要求最后给出每个学校的排名。题目坑点:输入需要scanf,不然最后两个会超时,而且没想到什么很省时间的方法,因此800ms的时间勉强通过,这里复习了之前的map转vector然后排序的方法,需要记住的是cmp中两个参数定义pair时,访问的时候是点访问,不是箭头访问,因为不是指针。很奇怪的一个问题就是:刚开始的时候没有统一输入输出的方式,然...原创 2020-03-26 11:50:35 · 72 阅读 · 0 评论 -
PAT A1139 First Contact
题目难度:四颗星题目大意:给出一个关系图,让选出两个人BC,是的AD可以联系起来,并且要求AB,CD是同性。题目坑点:首先就是对于0000与-0000没有区别,导致一个测试点故障。。。这个属实考虑的不周全,最重要的,也是影响测试点最多的就是因为要求用其他人来传递,因此AC,BD不可以相同。如果相同,那么就不应该算作方案。因此。。。。死于此题。。。我晕 搞了好久,实力属实太差。。。代码还写的...原创 2020-03-26 00:04:50 · 126 阅读 · 0 评论 -
PAT A1138 Postorder Traversal
题目难度:三颗半星题目大意:给出一个树的中序和前序的序列,然后要求给出后序遍历的第一个元素。题目坑点:一看到N的范围就知道这题目肯定有地方卡时间,然后开始做题,每个地方都尽可能的省时间,就连建树的时候都没必要的都没有建立,但是依旧不通过其中的一个测试点,然后仔细想想,问题出在了查找的函数上,因为没有给出范围,因此,每次的查找都是从一开始查找的,因此效率比较低,于是给了一个范围,果然压着650m...原创 2020-03-25 21:57:28 · 122 阅读 · 0 评论 -
PAT A1137 Final Grading
题目难度:两颗半星题目大意:给出学生的成绩单,要求输出符合要求的学生成绩,然后给出计算出的最后的值。题目坑点:利用stl做,虽然感觉复杂点,但是方便一点。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack>#include<algorith...原创 2020-03-25 20:02:35 · 73 阅读 · 0 评论 -
PAT A1136 A Delayed Palindrome
题目难度:三颗星题目大意:给出一个数,如果不是回文就倒叙和自己相加,如此往复,知道最终的和为回文,并且不超过十次操作。题目坑点:刚开始三个测试点不过。以为错了很多,结果就是一个特殊的判定没有搞,因为一开始输入的就是回文的话 直接输出就好了。代码如下:#include<iostream>#include<stdlib.h>#include<queue>...原创 2020-03-25 19:09:25 · 158 阅读 · 0 评论 -
PAT A1129 Recommendation System
题目难度:三颗星题目大意:给出序列,要去给出每一个元素之前出现频率最高的K个元素。题目坑点:刚开始是每次都需要排序,然后果不其然超时了,但是没有想到优化的方案,之后看到别人写的,在每次push之后,可以将第十一个pop输出,这样每次排序就只有最多十个进行排序。否则可以使用set的排序,就是在定义结构体的时候对小于号重载,然后插入set的时候就会自动排序。定义结构体中需要如下表示:type...原创 2020-03-25 16:51:38 · 98 阅读 · 0 评论 -
PAT A1123 Is It a Complete AVL Tree
题目难度:三颗星题目大意:给出一个平衡二叉树的插入的顺序,然后给出层序遍历的结果,最后判断是否是完全二叉树。题目坑点:学会了一个判断完全二叉树的办法:刚开始设置变量iscom和after,表示是否是完全二叉树和有无后续的孩子节点,在层序遍历中,当弹出的时候,进vector,然后看左节点是否为空,如果为空,那么就该成无after,即after=0,如果此后再有左右节点不为空的情况,并且应该没有a...原创 2020-03-25 14:43:27 · 55 阅读 · 0 评论 -
PAT A1114 Family Property
题目难度:三颗星题目大意:给出一个个家庭的关系和每个人的资产,最后问有多少个家族,并给出每个家族的人数,和资产,以及一个家族成员中最小的编号。题目坑点:刚开始以为可以用并查集做,但是想了好久都么有想通,今早起来想了想,其实就是图的遍历吧。输入的人员关系,就是两个节点有一条边,理通了思路就好办了,就把关系转换为图,然后对图进行遍历,然后求出有多少个连通子图即可,在遍历的时候顺便记录一些东西就好了...原创 2020-03-24 11:59:09 · 86 阅读 · 0 评论 -
PAT A1134 Vertex Cover
题目难度:两颗星题目大意:给出一个图的边集合,然后给出n个查询,问是否可以在给定的元素中,包含所有边的至少一个顶点。题目坑点:刚开始习惯性cin,结果最后一个测试点超时,不出所料,可能是方法不是很好,但是懒的换方法,于是改成scanf,然后发现顺利通过,但是测试点2的时间居然缩短了将近一半。。。有点可怕啊,事实证明,在输入的数据比较多的时候,还是用scanf比较保险的。代码如下:#incl...原创 2020-03-23 21:39:49 · 102 阅读 · 0 评论 -
PAT A1133 Splitting A Linked List
题目难度:两颗星题目大意:把单链表中的负数放在最前面,接着放小于K的数,最后放大于K的数。题目坑点:无脑硬解,没想到更好的方法,暂时就这样。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack>#include<algorithm>#...原创 2020-03-23 21:04:32 · 62 阅读 · 1 评论 -
PAT A1132 Cut Integer
题目难度:两颗星题目大意:把一个数分成前后两个相等的两份,然后看分成的两个数的乘积能否整除这个数。题目坑点:第一遍提交的时候搞出了一个没遇到的浮点错误。。。然后点进去一看,原来是不小心除以零了。。。因为分割的时候,后一部分可能都是零,因此乘积也就是零。。。一定要考虑周全代码如下:#include<iostream>#include<stdlib.h>#inclu...原创 2020-03-23 16:57:31 · 96 阅读 · 0 评论 -
PAT A1130 Infix Expression
题目难度:两颗星题目大意:给出一个树的结构,要求中序输出,并且在适当的地方需要加上括号。题目坑点:就是中序输出的一个东西,但是需要注意的就是有的地方不需要括号,比如表达式的最外层,或者是单个的元素是不需要的。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<sta...原创 2020-03-23 16:37:35 · 65 阅读 · 0 评论 -
PAT A1128 N Queens Puzzle
题目难度:两颗星题目大意:给出一个皇后序列,问是否满足八皇后的序列的规则。题目坑点:就是虽然不会出现在同一个列上,但是有可能出现在同样的行上,因此在判断的时候,需要判断当前的行和之前的行是否相等。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack>...原创 2020-03-23 14:25:07 · 70 阅读 · 0 评论 -
PAT A1126 Eulerian Path
题目难度:两颗星题目大意:给出一个图的结构,要求给出图是否是存在欧拉回路,欧拉路径,或者非欧拉图。题目坑点:就是学到了一些充分必要条件:连通多重图中存在欧拉回路当且仅当图中所有顶点的度数为偶数。连通多重图中存在欧拉通路且不存在欧拉回路当且仅当连通图中有且只用两个顶点的度数为奇数。题目没难度,但是目测DFS可能时间复杂度会高,毕竟非递归要好点儿。代码如下:#include<i...原创 2020-03-23 12:22:37 · 76 阅读 · 0 评论 -
PAT A1125 Chain the Ropes
题目难度:两颗星题目大意:给出一个序列,两个两个结合之后对折,对折之后又是一个新的绳索,要求给出所有绳索对折之后的最大长度。题目坑点:其实是贪心的问题,就是每次都选择最小的去参加对折,因此每次对折的损耗是最小的。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<s...原创 2020-03-23 11:00:40 · 61 阅读 · 0 评论 -
PAT A1124 Raffle for Weibo Followers
题目难度:两颗星题目大意:给出一个微博的转发人数序列,然后要求从开始序号S,每隔N个人抽中一个中奖者,如果该中奖者已经中奖,那么就顺延下一个。题目坑点:没啥难度,就是学会一个vector中的一个查找元素的方法。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<st...原创 2020-03-23 10:48:34 · 65 阅读 · 0 评论 -
PAT A1122 Hamiltonian Cycle
题目难度:两颗星题目大意:给出一个图的结构,然后给出一系列的查询序列,问该序列是否是一个联通所有节点一个简单回路。题目坑点:直接码,要是过所有点的环,那么个数肯定是节点数加一,而且要求第一个和最后一个元素是相等的。其次就是要把所有的顶点都访问一遍。代码如下:#include<iostream>#include<stdlib.h>#include<queue...原创 2020-03-23 10:25:20 · 63 阅读 · 0 评论 -
PAT A1121 Damn Single
题目难度:两颗星题目大意:给出有配偶的数据,然后给出一个聚会的出席人员,问有多少今晚是单身狗,也就是配偶没有来,或者本来就是单身的。题目坑点:感觉之后的题目都是对之前的回顾,因此算法笔记才没有O(∩_∩)O哈哈~。。。所以没难度代码如下:#include<iostream>#include<stdlib.h>#include<queue>#incl...原创 2020-03-22 23:14:47 · 67 阅读 · 0 评论 -
PAT A1120 Friend Numbers
题目难度:两颗星题目大意:给出一个数值的序列,然后要求求出序列中不同的朋友数值的ID,就是不同数位相加的和。题目坑点:没有啥难度,纯模拟题,但是有一个值得吸取的经验,就是STL中一些不同容器的相互转换。本题中的set转换为vector然后进行排序,转换只需要如下:set<int> res;vector<int> v(res.begin(),res.end());...原创 2020-03-22 22:41:39 · 90 阅读 · 0 评论 -
PAT A1118 Birds in Forest
题目难度:两颗半星题目大意:给出不同的图片,每个图片都有鸟,问最多会有多少棵树,然后最多有多少鸟,认为一张图片中的鸟都是一棵树上的。题目坑点:就是并查集,但是需要优化一下并查集的查找的函数,需要对过程中的节点保存一下,然后最后再挨个加在最后的父节点上。这样可以明显的优化时间复杂度,没有优化之前,改了所有的cin,cout,然后勉强145ms通过,优化了并查集之后,仅需要十几毫秒。。。可怕的优化...原创 2020-03-22 22:01:51 · 65 阅读 · 0 评论 -
PAT A1117 Eddington Number
题目难度:两颗星题目大意:给出一个序列,求出最大的N,使得至少有N个大于N的数。题目坑点:自己代码中sum应该开始是1,不能设为0,因此刚开始的时候如果设置为0,那么第一次就退出循环,导致得到的N是-1,应该是这种情况的出现。但是自己在代码中修改了这部分,没有看出来有变化。。。。不知道为啥玩意。只要sum开始为0,然后sum++放到判断的开始就会一个测试点不能通过。。。。。。。。。。之后再说...原创 2020-03-22 20:51:21 · 75 阅读 · 0 评论 -
PAT A1116 Come on! Let's C
题目难度:两颗星题目大意:给出一个数值序列的排序,然后给出一系列的查询,根据名次和查询状态的不同输出不同的结果。题目坑点:没有什么技术含量,就是逻辑的东西,注意就好。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack>#include<al...原创 2020-03-22 16:42:19 · 85 阅读 · 0 评论 -
PAT A1115 Counting Nodes in a BST
题目难度:两颗半星题目大意:给出一个二叉排序树的插入的序列,然后依次插入,最后给出最后两层的节点的个数。题目坑点:首先就是二叉排序树的插入操作,其次就是层序遍历的代码。没啥操作。。。简单问题。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<stack>...原创 2020-03-22 15:48:27 · 63 阅读 · 0 评论 -
PAT A1113 Integer Set Partition
题目难度:两颗半星题目大意:给出n个元素,要求求出两个集合中个数差最小,然后元素数值差最大。题目坑点:。。。我无语,刚开始以为用sort会超时,于是乎决定用快排来求出一个中间节点,但是发现就是超时,中间还出现一些差错不知道为啥。最后没办法,始终超时,于是乎决定试一下sort,结果ac。代码如下:#include<iostream>#include<stdlib.h>...原创 2020-03-22 12:15:44 · 90 阅读 · 0 评论 -
PAT A1110 Complete Binary Tree
题目难度:三颗星题目大意:给出一个树的树形结构,要求判断这个树是不是完全二叉树,如果是,那么就输出YES和最后一个节点的编号,如果不是,那么就输出NO和该树的根节点的编号。题目坑点:首先要说的是,审题需要清楚,因为数据可能会是两位数,因此不可以用%c进行输入,需要用到字符串进行输入,刚开始的时候自己用的%c进行输入的,还发现了一些问题所在,就是输入字符的时候,如果下面依旧需要输入字符,那么会导...原创 2020-03-22 10:50:00 · 94 阅读 · 0 评论 -
PAT A1112 Stucked Keyboard
题目难度:两颗半星题目大意:一个键盘会有阻塞的按键,就是按下去之后就会显示出多个字母,但是只要有一次显示的不是阻塞的那么就不算是阻塞的。题目坑点:需要注意的是最后一个元素的处理,本人就是把最后再添加一个元素,然后判断,因为每一次都是对前一个元素进行判断,因此最后一个元素可能会处理不到。看着写的还是很复杂,之后再看其他人的优秀代码吧。代码如下:#include<iostream>...原创 2020-03-21 20:59:53 · 80 阅读 · 0 评论 -
PAT A1091 Acute Stroke
题目难度:三颗星题目大意:给出三维的数组,要求求出超过阈值的联通的区域的总数值。题目坑点:就是三维的BFS,其实不难,主要是对方法的判断,因为如果用DFS的话,会有测试点导致超时,还是BFS会好一点,毕竟不用递归。代码如下:#include<iostream>#include<stdlib.h>#include<queue>#include<...原创 2020-03-21 18:20:48 · 70 阅读 · 0 评论 -
PAT A1082 Read Number in Chinese
题目难度:三颗星题目大意:需要用中文读数字的方法,读出给出的数值。题目坑点:首先就是需要分割,因为中文中,对数字是按照四位一个单位,也就是个,万,亿,但是个是不需要读出的。然后对每一个四位一个单位读出该四位的数值即可。首先需要判断的就是负号,如果有负号,需要先输出“Fu”,然后分割数值,从前向后,因为在读数中需要判断是否存在间隔的零,因此当有零时,需要记录已经存在零,因为可能存在多个零,因此...原创 2020-03-21 16:54:16 · 56 阅读 · 0 评论 -
PAT A1095 Cars on Campus
题目难度:三颗星题目大意:给出一个序列,车进出停车场的记录,其中有无效的记录,靠的最近的两个进出记录视为有效。否则视为无效记录,最后给出查询的时间,要求给出每个查询时间节点停车场内的车辆的数量。最后给出在停车场呆时间最久的车的车牌号,如果有多个,那么就都输出,并输出待的时间。题目坑点:就是需要先筛选出有效的匹配成对的记录,然后需要对有效的匹配记录,记下时间,并累加,然后给出每个时刻的车辆数,最...原创 2020-03-21 14:28:09 · 62 阅读 · 0 评论 -
PAT A1109 Group Photo
题目难度:三颗星题目大意:给出一个人员的身高和姓名,要求按照一定规则排序,前排高度不得高于后排的,其次按照中间高,两边矮的原则进行排序。题目坑点:自己刚开始没有想到间隔其实是2,其次对于最后一个情况的特殊处理也不是很好,需要牢记。代码如下:#include <iostream>#include <string>#include <vector>#i...原创 2020-03-21 11:28:25 · 88 阅读 · 0 评论 -
PAT A1105 Spiral Matrix
题目难度:两颗半星题目大意:给出一个序列,然后按照蛇形输出一个方阵。题目坑点:需要考虑方法,自己动手模拟一遍,结果不是很理想,还是看了算法笔记的解释跟着做了一遍,之后需要再看看吧。就是定位每一次开始的位置,然后定位每一个的上下左右的边界,然后开始循环,需要注意的是最后一个需要特判断,因为平方数的时候中心只有一个,左右边界会有问题,因此需要单独考虑,此外需要注意的就是当只有一个数的时候也需要特殊...原创 2020-03-20 11:49:03 · 62 阅读 · 0 评论 -
PAT A1017 Queueing at Bank
题目难度:三颗星题目大意:给出办理业务的时间,和窗口的开张的时间和结束时间,然后求出每个人平均等待时间。题目坑点:时间转换为秒比较好做,思路可以学习到,涉及时间的问题,可以将整体的时间调整为秒比较方便。在这里其实需要特殊考虑零个人的情况,但是由于没有测试点有信息,所以代码中没有考虑、。代码如下:#include<iostream>#include<stdlib.h&g...原创 2020-03-16 17:39:30 · 60 阅读 · 0 评论 -
PAT A1014 Waiting in Line
题目难度:两颗半星题目大意:一行人去银行办理业务,每个窗口都有最大的等待人数,人们总数去更少的人的队伍排队,但是每个人的都有不同的办理业务的时间,如果该人在接受办理业务时候超过了五点,那么就在查询的时候输出sorry,否则就输出该人办理业务结束的时间。题目坑点:就是需要记录每个人员开始办理业务的时间,刚开始想省去记录数组的开销,但是发现没有其他的办法了,因为最大的数据不是很大,因此对时间循环即...原创 2020-03-16 14:00:18 · 86 阅读 · 0 评论 -
PAT A1010 Radix
题目难度:三颗星题目大意:给出两个数和 然后给出其中一个数的进制,要求计算出另一个数和该数相等的进制。题目坑点:首先就是转换,根据tag把其中的一个已知的转换为十进制,然后再对另一个数进行二分的进制查找,查找很简单,问题就是两个数转换之后的对比,因为进制很大,范围很大,因此可能超过LL溢出,因此需要考虑溢出的情况,之前写都没有考虑,导致好多测试点都没通过,看了算法笔记之后,加了溢出的判断,就直...原创 2020-03-16 10:34:58 · 63 阅读 · 0 评论 -
PAT A1103 Integer Factorization
题目难度:四颗星题目大意:给出一个整数,和需要分的块数和次方数,要求给出次方和相加刚好是该整数的方案,要求底数和最大,否则就字典序最大。题目坑点:超时的问题,刚开始的时候是自己用了dfs,但是dfs是对所有的数值都进行dfs,但是计算的是有问题的,总是有一个超时,尽管已经给出了所有尽可能的降低时间复杂度的操作,但是依旧于事无补。于是乎,看答案。答案就是精妙哇。。。自己做的时候是通过遍历数字,...原创 2020-03-13 22:37:13 · 111 阅读 · 0 评论