PAT甲级题解
官方题库甲级题解
苯酸氨酰糖化物
Talk is cheap. Show me the code
展开
-
【PAT甲级题解】1097 Deduplication on a Linked List (25分)
Deduplication意为重复数据消除,Deplicated意为复制,是deduplication的过去式,题干大意为给定一个单链表L要求你对每一个结点的值判断,如果这个值的绝对值是第一次出现,那么将它们放在一起,如果这个结点的绝对值已经出现过了,那么按照出现顺序将他们单独存放,最后按照链表的形式输出,先输出第一次出现的主表,然后在输出重复的链表,这里题目有一个坑点,就是有一种3分的情况是没有重复的值得链表,这样的话需要判断再输出,具体方法PAT已经出过好多这种类似的题目了,无非就是对节点地址去重然后根原创 2020-05-13 16:07:00 · 222 阅读 · 0 评论 -
【PAT甲级题解】1091 Acute Stroke (30分) BFS
本题考BFS应用,题目大意是给出一个三维0,1矩阵,你需要对任意一个元素的上下左右前后进行判断枚举,如果当前元素为1且满足要求,则入队,当前枚举结束后如果该’1’矩阵不小于一个’l’代表的阈值则返回其中’1’的数量,其实原题要求我们对每一个满足要求的’1’矩阵求其体积volum,但是因为每一个1代表一个符合要求的元素,所以直接对1的个数进行计数就可以省去求体积的繁琐步骤,对于这种需要枚举矩阵中不同方向的元素的题目,通常选择使用一个“增量数组”来解决,初始化每个方向的所有可能值进入数组中就可以对任意一个位置的原创 2020-05-13 16:05:42 · 200 阅读 · 0 评论 -
【PAT甲级题解】1052 Linked List Sorting (25分)
本题常规链表题,与乙级有区别的地方是,这次要求对值排序,而不是翻转或者区块翻转,对于值排序,我选择使用第一个结构体按照散列存入list数组中,为了处理脏数据还能实现排序,选择使用第二个结构体node1存入vector中,然后对vector中的数据排序,排序后循环输出,坑点一:存在全部都是脏数据的情况,需要输出0和-1,但是第一次做测试点3错误扣3分,最终拿到22分,一直没找到答案,先放在这里,今后二刷回来考虑一下 代码: #include<iostream> #include<stdio.原创 2020-05-13 16:03:19 · 120 阅读 · 0 评论 -
【PAT甲级题解】1051 Pop Sequence (25分)
本题单纯考栈的应用,直接使用STL的stack函数或者自己用数组模拟stack也可,这里我使用STL,题目大意讲,给定m,n,k三个数,m代表stack中最大能存数的个数,n代表给出的待测试序列的长度,m代表以下共有几个输入的序列,编程时,对于这种测试有很多行的数据,应该将其规模化简后逐一处理,这样就有了一种类似于流程化程序处理的感觉,会让思路清晰,这到题里我选择用一个while循环控制k个待测试...原创 2020-05-04 11:29:46 · 199 阅读 · 0 评论 -
【PAT甲级题解】1056 Mice and Rice (25分)
这道题我第一次做是跟着算法训练来的,从栈到队列,这道题可以用队列来做,首先需要明白题意,大意是给出np只老鼠的质量,再给出一个数ng代表分组的组数(最后不足ng只老鼠也分为一组)对于每组老鼠,选出最重的一只老鼠晋级,这里题目有重点,每组中所有未晋级的老鼠排名全部相同,如此循环往复,直到只剩下1只老鼠(即排名第一)为止,需要从i=0到i=np-1输出每个位置上对应的老鼠的排名,注意,题目的样例第二行...原创 2020-05-04 11:28:42 · 258 阅读 · 0 评论 -
【PAT甲级题解】1032 Sharing (25分)
本题考链表处理,题意大致是有两个英文单词组成的链表,但是为了节省空间,对于存在相同后缀’suffix’的单词,链表选择使用相同的指针,例如loding和being,后缀都是ing所以,对于loding,d字母的指针就指向了i,对于being,e字母的指针就指向了i,从此之后,他们共用余下的指针,本题就是要让你找出那第一个指针的位置,并输出它的地址,这道题有两种方法,一种最容易的就是暴力模拟,从任意...原创 2020-05-04 11:27:33 · 132 阅读 · 0 评论