![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pat题解
Ispeechless
这个作者很懒,什么都没留下…
展开
-
PAT甲级 1178 File Path+测试点1、2分析
样例输入中,每个目录位于第几级前面会有对应的几个空格,我们输入的时候用字符串输入,遍历一下判断有几个空格,用一个数组a存放当前目录级数最近出现的目录。再设一个数组id用来存放每个目录名对应的上级目录是谁,最后查找的时候,深搜一下即可。测试点1和2错误是因为,让查找的是0000的时候,当前是根目录没有上级,只输出0000即可。题目的意思就是给你一串目录名,让你查找一下该目录的上级,从根目录开始输出。原创 2024-03-02 15:07:55 · 333 阅读 · 1 评论 -
PAT甲级 1113 Integer Set Partition
要求两部分数的和相减值最大,所以要排序直接用sort排就可以,只有第一部分数为小的数且个数少时与第二部分为大的数和相减得到的数才能最大。所以当n为奇数时,第二部分的数比第一部分要多一个。要使两部分数个数相差最小肯定就是平分/2,如果是一个偶数个数相差为0,如果是一个奇数个数相差为1,。题目的意思是给你n个数,让你分成两部分,这两部分数的个数相差要最小并且两部分相减的和最大。原创 2024-01-19 11:40:52 · 341 阅读 · 1 评论 -
PAT甲级 1101 Quick Sort+测试点2格式错误解释
我们就可以利用四个数组分别求出每个位置的左侧最小值、左侧最大值,右侧最小值,右侧最大值,最后利用刚才得到的条件判断一下即可。根据题目样例的解释我们可以得知选择某个关键字,只有左边都比它小右边都比它大或者是左边都比它大右边都比它小才能当一个支点。我们可以得到一个规律一个关键字x能当支点得lmx<=x<=rmx并且lmn<=x<=rmn。我们可以对样例分析查找一下关键字的左右两边的最大值最小值,如图所示。题目的意思是要进行快速排序请你找出能当排序的支点有几个,逐个输出。原创 2024-01-17 10:32:59 · 355 阅读 · 0 评论 -
PAT甲级 1061 Dating+测试点分析
题目的意思就是给你四行字符串,让你解密最后的约会时间是多少,第一行和第二行字符串一样的第一个大写字母(A-G)之间,A代表周一依次类推。确定周几后找第二个位置相同的数字字符或大写字母(A-N)输出对应的时间,数字字符‘0’-‘9’表示0点-9点,大写字母‘A’表示10点往后依次类推。找一下第三行第四行相同的英文字母输出对应的位置(从0开始)。写一个循环第一行英文字母和第二行英文字母,找到相同位置的大写字母(A-G)就输出对应的周几缩写,可以写一个字符串数组来存储周几的缩写,调用一个字符串数组就可以了。原创 2024-01-16 11:22:58 · 512 阅读 · 1 评论 -
PAT甲级 1093 Count PAT‘s
T的结果就是当前这个A可以构成的PAT子串,因为字符串中可以有多个A,所以需要把结果加起来。可以先遍历数组有几个T,遍历A的时候前面有一个T我们就将存储T出现次数的变量-1就是A后面有几个T。题目的意思就是输入一串字符串,输出这一串字符串中有几个PAT子串。T的结果取余一次然后再对相加的结果取余一次,不然可能会数据溢出。我们只需要判断字符A前面有几个P,后面有几个T,用P。取余的时候一定要将P。原创 2024-01-12 17:21:38 · 349 阅读 · 1 评论 -
PAT甲级 1078 Hashing+测试点1分析
有一个点M应该是一个素数,如果M不是一个素数就应该把M变成一个比M大的最小素数。先将m变成一个素数,设置一个k表示增量,每次只需要判断关键字%m+k*k是否被占用,每次让增量自增。题目的意思就是有一个哈希表,按照数值%M得到的结果放在表中,如果数值%M的位置已经被占用就使用二次探测法添加正增量,第一次数值%M+1。测试点1错误的原因就是因为M为1的情况应该变成2。,如果这个位置已经被占用接着查找关键字%M+2。为止,如果还是没有位置放就输出“-”。,如果被占用就接着查找依次是+3。原创 2024-01-12 11:22:36 · 361 阅读 · 1 评论 -
1039 Course List for Student
可以利用map和vector构造一个二维数组,课程名当做下标,输出每门课程选择的人,要将人的编号从小到大排,利用sort排序就可以。输出课程名后还要输出选择的总人数,直接输出该课程对应数组的尺寸即可。题目的意思就是有n个课程,k个人,接下来k组数据分别表示,人的编号和这个人选了几门课,最后依次输出课程有谁选了。vector教程可参考http://t.csdnimg.cn/AW54j。map教程可参考http://t.csdnimg.cn/CKff5。原创 2024-01-04 13:43:50 · 347 阅读 · 1 评论 -
1031 Hello World for U+测试点1、3、5、6分析
题目的主要意思就是将输入的字符串输出时构成一个U形,n1表示第一列的字符数,n3表示最后一列的字符数,n2表示最后一行的字符数,n1+n2+n3-2=字符串长度,-2是因为第一列、最后一列与最后一行分别有一个相交的字符。n1,n3要为<=n2的最大值,所以需要再额外写一个循环使n1,n3为最大的,分完之后输出就很好写,要额外判断第一列最后一列最后一行的情况。测试点1、3、5、6就在于n1,n3<=n2,字符串长度分为两部分(n1和n3为一部分,n2为一部分)就会导致n2<n1,n3测试点才不通过。原创 2024-01-03 15:53:14 · 380 阅读 · 1 评论 -
PTA甲级 1024 Palindromic Number+测试点2、3分析
题目的大致意思就是给你一个数,看这个数能不能通过K步得到一个回文数,让将倒过来的数和当前数相加,得到的结果如果是一个回文数就输出结果数并输出是经过几步得到的。如果K步完成后还没有变成回文数就输出第K步得到的数并输出K。题目中说n最大为10的10次方,经过有限次操作后long long也存储不了,只能采用高精度加法的思想,用数组存储每一位数字,进行加法操作,和数学中加法操作一样,每次两位数字相加后再加上进位,有进位再移动到下一位。有一个注意点,如果输入的数就是一个回文数就直接输出这个数并输出0。原创 2023-12-28 11:32:39 · 502 阅读 · 1 评论 -
PAT甲级 1017 Queueing at Bank+测试点3、4、5分析
题目给的时间要进行计算,统一装换成秒的形式,并进行判断是否是在17:00前到达,17:00前到达的就可以排队,样例给出的都是无序的时间,得自己排序,可定义一个结构体,用于存储到达时间和办业务的时间,用快排排一下序。题目的大致意思就是有一家银行可以办业务,要办业务的人有n个,办业务的窗口有k个,如果没有空闲窗口就得等着,问最后这些人平均等待了多长时间,有一点要注意8:00-17:00是办业务的时间,8:00之前到的就得等到8:00,17:00之后到的就不给办了。原创 2023-12-27 11:45:21 · 496 阅读 · 1 评论 -
PAT甲级 1094 The Largest Generation
首先看样例,如图所示,数最多的是第四层,并有9个数,那我们就可以用一个数组来统计一下每一层的数量并找出最大的即可,使用深搜就非常容易实现。题目的主要意思就是让你求出哪一层数最多并输出数目和层数。原创 2023-08-16 10:30:00 · 62 阅读 · 1 评论 -
PAT甲级 1099 Build A Binary Search Tree
PAT甲级 1099 Build A Binary Search Tree 二叉搜索树原创 2023-08-15 14:39:32 · 43 阅读 · 0 评论 -
PAT甲级1013 Battle Over Cities
使用并查集,将给出的M条边去除含有删除城市的边使用并查集相连,统计分为了几个集合,最后集合数-1就是答案,集合数-1是因为n个点相连仅需要n-1条线,最后使用并查集要用压缩路径,否则最后一个测试点会超时。题目意思说给N个城市,M条城市与城市之间相连的边,K个每次要去除的城市,输出去除第k个城市后需要几条边才能使其余的城市连接在一块。原创 2023-04-15 10:18:36 · 71 阅读 · 0 评论 -
GPLT L2-040 哲哲打游戏 (25 分)
题目:哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切!为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点。此外,游戏还设置了一些存档,在某个剧情点可以将玩家的游戏进度保存在一个档位上,读取存档后可以回到剧情点,重新进行操作或者选择,到达不同的剧情点。为了追踪硬核游戏玩家哲哲的攻略进度,你打算写一个程序来完成这个工作。假设你已经知道了游戏的全部剧情点和流程,以及哲哲的游戏操作,请你输原创 2021-11-29 19:58:37 · 224 阅读 · 0 评论 -
PAT乙级 1095 解码PAT准考证 (25 分)+测试点分析
题目:PAT 准考证号由 4 部分组成:第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级;第 2~4 位是考场编号,范围从 101 到 999;第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位;最后 11~13 位是考生编号,范围从 000 到 999。现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。输入格式:输入首先在一行中给出两个正整数 N(≤10^4)和 M(≤100),分别为考生人数和统计要求的个数。接下来 N 行,每行给出一个考生的原创 2021-11-24 22:57:02 · 194 阅读 · 0 评论 -
PAT乙级 1073 多选题常见计分法 (20 分)
题目批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。输入格式:输入在第一行给出两个正整数 N(≤1000)和 M(≤100),分别是学生人数和多选题的个数。随后 M 行,每行顺次给出一道题的满分值(不超过 5 的正整数)、选项个数(不少于 2 且不超过 5 的正整数)、正确选项个数原创 2021-11-22 19:27:44 · 130 阅读 · 0 评论