PAT甲级
将个人准备浙大计院机试总结,可pat考试以及浙大计院软院机试参考,愿和各位一起探讨,如有错误或者好的建议望指正。
dutmathjc
stay hungry,stay foolish.
展开
-
pat甲级 A1049 Counting Ones (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805430595731456题目分析:参考代码:#include <cstdio>int main(){ int n, left, now, right, ans = 0, a = 1; scanf...原创 2020-05-07 20:48:53 · 106 阅读 · 0 评论 -
pat甲级 A1048 Find Coins (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805432256675840题目分析:本题可先将该序列进行排序,然后,设置两个分别指向第一个和最后一个的下标i,j;若有c[i] + c[j] == m,则输出c[i]、c[j],若c[i] + c[j] <m,则将i++,若c[i...原创 2020-05-07 20:44:00 · 114 阅读 · 0 评论 -
pat甲级 A1047 Student List for Course (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805433955368960题目分析:使用一个vector<string> course[2510]记录相应课程的学生即可。参考代码:#include <vector>#include <...原创 2020-05-07 20:23:30 · 124 阅读 · 0 评论 -
pat甲级 A1045 Favorite Color Stripe (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805437411475456题目分析:此题有点类似求解两个最长公共子串。()原创 2020-05-06 17:10:51 · 193 阅读 · 0 评论 -
pat 甲级 A1044 Shopping in Mars (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805439202443264题目分析:本题较为简单,两个for循环即可。但是需要注意的是,由于输入的序列元素为正整数,那么当外循环从某一值始,sum和任小于给定的m值,此时直接退出循环,因为外循环后面的值也必然不满足题目要求。参考...原创 2020-05-06 08:00:08 · 147 阅读 · 0 评论 -
pat A 甲级1043 Is It a Binary Search Tree (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856题目分析:这是一道二叉查找树的问题。一般题目都是需要建树,下面给出建树的通用算法:void insert(node* &root,int w) //建二叉查找树,将值w插入到二叉查找树中,这里的&am...原创 2020-05-06 06:47:55 · 134 阅读 · 0 评论 -
pat甲级 A1043 Is It a Binary Search Tree (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856题目分析:本题为二叉查找树,首先,根据输入序列,构建二叉排序树,我们知道输入序列即为前序序列。然后,判断是正常的二叉排序树还是mirror 二叉排序树。最后,输出该树的后序序列。#include<iostr...原创 2020-04-29 14:42:34 · 148 阅读 · 0 评论 -
pat甲级 A1041 Be Unique (20分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805444361437184题目分析:原创 2020-04-28 17:07:44 · 120 阅读 · 0 评论 -
pat 甲级A1040 Longest Symmetric String (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805446102073344题目分析:本题可采用暴力的方法,也可以使用动态规划的方法。暴力方法O(N^3):#include <iostream>using namespace std;int main(){ i...原创 2020-04-28 17:03:20 · 101 阅读 · 0 评论 -
pat甲级A1038 Recover the Smallest Number (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805449625288704题目分析:参考代码:#include<iostream>#include<string>#include<vector>#include<algorithm&...原创 2020-04-27 15:18:42 · 177 阅读 · 0 评论 -
pat 甲级A1037 Magic Coupon (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805451374313472题目分析:简单地数学模拟。参考代码:#include <iostream>#include <algorithm>#include <cstring>using...原创 2020-04-27 15:09:46 · 93 阅读 · 0 评论 -
pat甲级 A1035 Password (20分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805454989803520题目分析:参考代码:#include <cstdio>#include <vector>#include <cstring>using namespac...原创 2020-04-27 11:28:39 · 96 阅读 · 0 评论 -
pat 甲级 A1034 Head of a Gang (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624题目分析:参考代码:#include<iostream>#include<string>#include<map>using namespace std...原创 2020-04-27 10:28:02 · 128 阅读 · 0 评论 -
pat 甲级A1033 To Fill or Not to Fill (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805458722734080题目分析:参考代码:#include <iostream>#include <algorithm>#include <vector>using namespa...原创 2020-04-26 17:02:55 · 134 阅读 · 0 评论 -
pat 甲级A1032 Sharing (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805460652113920题目分析:求两个字符串的公共后缀起始地址。在访问第一个字符串时,将节点标记为true,故当访问到第二个字符串中第一个标记为true的结点便是公共后缀的起始地址。参考代码:#include <...原创 2020-04-26 16:19:34 · 97 阅读 · 0 评论 -
pat 甲级 A1030 Travel Plan (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805464397627392题目分析:本题比较常规,即最短路径问题+最小花费。Dijkstra算法 + DFS。Dijkstra算法用于计算最短路径,DFS用于输出路径。参考代码:#include<cstdio>#i...原创 2020-04-26 15:51:00 · 93 阅读 · 0 评论 -
pat 甲级A1029 Median (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805466364755968题目分析:给出两个递增序列,将两者合并后的中位数输出。本题有点类似多项式的加法,可在输入第二个递增序列时,同时得到最终的结果。参考代码:#include <iostream>using n...原创 2020-04-26 15:34:58 · 96 阅读 · 0 评论 -
pat 甲级A1028 List Sorting (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805468327690240题目分析:多混合排序问题。对不同键值进行排序。问题是写比较函数。注意:若将姓名定义成string类型超时。 不知道大家有没有出现这样的情况。望指正。参考代码:#include <algorithm...原创 2020-04-26 15:01:52 · 114 阅读 · 0 评论 -
pat甲级A1026 Table Tennis (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805472333250560题目分析:此题类似于A1017的排队问题,但是里面存在一个vip球员,以及vip球桌的问题,需要单独处理。需要设置球桌以及球员两个结构体。球桌,空闲时间以及服务人数,同时标记该球桌是否为vip球桌;球员,达到时间,...原创 2020-04-26 14:33:30 · 154 阅读 · 0 评论 -
pat甲级 A1025 PAT Ranking (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805474338127872题目分析:排序问题。需要得到两个排名,总排名,以及考场内排名。考场内排名可以在输出该考场信息后得到,当所有考生信息输入后得到最后各个考生的总排名。#include<iostream>#...原创 2020-04-25 17:11:52 · 127 阅读 · 0 评论 -
pat甲级 A1024 Palindromic Number (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805476473028608题目分析:字符串的处理+回文数的判断。重复将一个非回文数的正整数与其逆序相加,最终会得到一个回文数。现在,我们给出一个小于1e10的正整数和一个小于100的最高重复次数。输出若在给定次数范围内,能得到一个回文数,输...原创 2020-04-25 15:56:38 · 132 阅读 · 0 评论 -
pat 甲级A1023 Have Fun with Numbers (20分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805478658260992题目分析:字符串处理。给出一个不超过二十位的正整数A,然后得到一个该数的二倍B,判断B是否是A各位数的一个排列。参考代码:#include<cstdio>#include&...原创 2020-04-25 15:29:23 · 108 阅读 · 2 评论 -
pat甲级A1022 Digital Library (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336参考代码:#include <iostream>#include <map>#include <set> using namespace std; map&...原创 2020-04-23 14:22:23 · 112 阅读 · 0 评论 -
pat 甲级 A1021 Deepest Root (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805482919673856题目分析:给出N个顶点,以及N-1条边,若恰好能构成一颗树,则输出使得所有树中高度最大的根节点,否则输出连通分量的数目。...原创 2020-04-23 12:48:32 · 99 阅读 · 0 评论 -
pat甲级 A1020 Tree Traversals (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072题目分析:树的遍历。通过后序序列 + 中序序列得到层序序列。参考代码:#include<iostream>#include<vector>using namespace st...原创 2020-04-22 17:00:11 · 121 阅读 · 0 评论 -
pat甲级 A1018 Public Bike Management (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805489282433024题目分析:确定到达问题站点的最短路径(用Dijkstra算法),若存在多条最短路径,则选择从中心车站所带车辆最少的路径。参考代码:#include <iostream>#include &...原创 2020-04-22 16:29:59 · 149 阅读 · 0 评论 -
pat甲级 A1016 Phone Bills (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805493648703488题目分析:排序。根据给出的收费标准,计算多名用户的通话收费。参考代码:#include<iostream>#include<map>#include<vect...原创 2020-04-22 15:40:55 · 109 阅读 · 0 评论 -
pat 甲级 A1015 Reversible Primes (20分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805495863296000题目分析:进制转换+质数判断。参考代码:#include <cstdio>#include <cmath>using namespace std;int ans[20...原创 2020-04-22 14:42:03 · 98 阅读 · 0 评论 -
pat甲级 A1012 The Best Rank (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805502658068480题目分析:对四个成绩分别排序,得到相应排名。使用数组保存排名。给出N个学生的C语言,数学以及英语的成绩,对于这三门成绩以及平均成绩进行排名。对于M次查询,每次查询要求你输出该名学生的最好排名,若存在排名相同的情况,...原创 2020-04-22 13:56:11 · 107 阅读 · 0 评论 -
pat 甲级 A1013 Battle Over Cities (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805500414115840问题分析:参考代码:#include <cstdio>#include <vector>using namespace std;const int maxn =...原创 2020-04-22 11:23:13 · 108 阅读 · 0 评论 -
pat 甲级 A1010 Radix (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536题目分析:二分查找。给定两个数,其中指出一个数的基数,判断是否存在对应的基数使得两个数相等。在查找基数时,应使用二分查找(不能采用顺序查找,否则会超时),且基数最大即为已知基数的那个数转十进制后,加一,基数最小记为该数...原创 2020-04-22 11:08:56 · 140 阅读 · 0 评论 -
pat 甲级 A1008 Elevator (20分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805511923286016题目分析:有一N个整数构成的序列,表示依次想去的楼层号,已经知道,每上一层楼,花费为6,每下一层楼,花费为4,到达该层时,停留花费为4,要你算出一共花费多少,其中开始的时候电梯在第一层,且结束的时候不用返回第一层...原创 2020-04-22 09:41:39 · 99 阅读 · 0 评论 -
pat 甲级 A1007 Maximum Subsequence Sum (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805514284679168题目分析:最大子序列和的问题。注意,若序列中全为负数,则输出第一个元素以及最后一个元素。且和为零。参考代码:#include <iostream>#include <cstdi...原创 2020-04-22 09:28:07 · 106 阅读 · 0 评论 -
pat 甲级 A1006 Sign In and Sign Out (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805516654460928题目分析:根据一天中多人到达机房时间和离开时间,给出开门以及锁门人的ID。显然可以对到达时间,以及离开时间进行排序,最早的时间即为第一个人到达时间,最晚时间即为最后一个人离开时间。但是这容易超时。转换思路,可以想...原创 2020-04-22 09:07:47 · 95 阅读 · 0 评论 -
pat 甲级 A1005 Spell It Right (20分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805519074574336题目分析:本题主要是考察字符串的转换问题。采用do{}while();可省略sum==0的判断,简化代码。若采用while(){}的形式,则需要对sum=0单独讨论。参考代码:#include <...原创 2020-04-19 16:53:11 · 92 阅读 · 0 评论 -
pat 甲级 A1004 Counting Leaves (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184题目大意:树的遍历,输出每层叶子节点的数目。采用深度优先算法。参考代码:#include <iostream>#include <algorithm>#include <...原创 2020-04-19 16:20:23 · 126 阅读 · 0 评论 -
pat甲级 1003 Emergency (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376题目大意:这是一道图中最短路径的题目。只是增加了一个条件,在最短路径中选择顶点的权值最大者。本例中使用dijkstra算法。参考代码:#include<cstdio>#include<...原创 2020-04-19 15:13:48 · 139 阅读 · 0 评论 -
pat 甲级题目目录
A1001 A1003Emergency(25分) C++ ...原创 2020-04-19 14:16:28 · 297 阅读 · 0 评论 -
pat 甲级 A1068 Find More Coins (30分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805402305150976题目大意:给出n枚货币的面值,给定某一待付款项,要求你给出一个“最小的”货币序列付款。这里“最小的”概念可以理解成字典序的概念。0-1背包问题,表示在1到i之间,是否有序列和满足为j。则表示在存在和为0的...原创 2020-04-19 13:56:07 · 125 阅读 · 0 评论 -
pat 甲级 A1017 Queueing at Bank (25分)
题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805491530579968题目大意:模拟N名顾客去银行K个窗口排队。给出N名顾客的到达时间以及服务时间,因此是先到先服务,不难想到需要队列保存顾客信息,包括达到时间,以及服务时间。且假设每名顾客不会被服务超过1小时,要你计算出顾客的平均等待时间...原创 2020-04-18 11:42:45 · 109 阅读 · 0 评论