PAT
文章平均质量分 53
浙大机试题目,总共150道,不定期更新~
HERODING77
Shanghai AI Lab Researcher,硕士就读于华东师范大学数据科学与工程专业,本科就读于大连理工大学软件工程专业,兴趣方向为GUI Agent,prompt tunning,MLLM。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PAT Tree Traversals (25) [⼆叉树的遍历,后序中序转层序] HERODING的PAT之路
题目大意: 给定⼀棵⼆叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这⾥假设键值都是互不相等的正整数。 解题思路: 解决该题的关键在于要理解如何通过中序遍历和后序遍历获取前序遍历,这在我给的链接中有详细说明,弄明白之后,只需要在这基础上加上位置的标记即可,代码如下: #include<iostream> #include<algorithm> #include<vector> using namespace std; // 保存位置和值 struct node原创 2021-05-01 00:38:01 · 173 阅读 · 1 评论 -
PAT 1019 General Palindromic Number (20) [回⽂数] HERODING的PAT之路
题目大意: 输入两个整数a,b,将a转换成b进制数,判断是否为回文,并输出转换后的数。 解题思路: 最基本的回文数判断问题,双指针或者直接遍历一半的数组即可,无非多了进制转换操作(常规操作),代码如下: #include<iostream> using namespace std; int main() { int a, b; int arr[100]; bool flag = true; cin >> a >> b; int index = 0; //原创 2021-04-29 20:25:50 · 176 阅读 · 0 评论 -
PAT 1017 Queueing at Bank (25) [模拟 FIFO 日期格式] HERODING的PAT之路
题目大意: 有n个客户,k个窗⼝。已知每个客户的到达时间和需要的时⻓,如果有窗⼝就依次过去,如果没有窗⼝就在⻩线外等候,求客户的平均等待时⻓。银⾏开放时间为8点到17点,再8点之前不开⻔,8点之前来的⼈都要等待,在17点后来的⼈不被服务。 解题思路: 这是典型的FIFO(先进先出)问题,如果想对FIFO有更深的理解,可以学习操作系统的页面调度、进程调度的相关算法。首先我们肯定要定义好用户的结构体,存储用户到来的时间和需要服务时间,然后定义窗口数据,窗口只需要记录当前服务结束时间即可,注意这里的时间也是转换成原创 2021-04-28 21:20:13 · 213 阅读 · 0 评论 -
PAT 1016 Phone Bills (25) [排序 日期转换] HERODING的PAT之路
题目大意: 给你一个长途电话收费标准,以及一张通话记录,计算每个客户的话费单。每张通话记录可能有不匹配的状况,你需要在on-line和off-line中找到匹配的一次完整的通话,然后开始计费。输出每次完整通话的开始和结束时间以及本次通话话费,然后再计算本月通话总计。 解题思路: 又是一道特别复杂的排序问题题目,没有什么花里胡哨的算法技巧,就是一步一步来。观察题目发现,我们需要定义一个排序的函数,先排序姓名再排序时间,由于输入的是月日时分,所以可以统一转化成分钟来计算。在计算费用时,不如把所转换的分钟全部算成原创 2021-04-28 10:42:08 · 176 阅读 · 0 评论 -
PAT 1014 Waiting in Line[队列 结构体 时间表示] HERODING的PAT之路
题目大意: n个窗⼝,每个窗⼝可以排队m⼈。有k位⽤户需要服务,给出了每位⽤户需要的minute数,所有客户在8点开始服务,如果有窗⼝还没排满就⼊队,否则就在⻩线外等候。如果有某⼀列有⼀个⽤户⾛了服务完毕了,⻩线外的⼈就进来⼀个。如果同时就选窗⼝数⼩的。求q个⼈的服务结束时间。 解题思路: 老实说,浙大的PAT没有一道难题(至少做到现在来说),但是就是很麻烦,复杂一点都可以说是工程题,本题特别契合生活中的银行服务场景,首先读题老费劲了, 半天读不明白。然后具体到做题的话,步骤很长,思路很简单,可以分步如下:原创 2021-04-25 23:59:19 · 214 阅读 · 0 评论 -
PAT 1015 Reversible Primes (20) [素数] HERODING的PAT之路
题目大意: 输入数字,判断是否为素数,并根据进制数再转回十进制反过来的数判断是否是素数,二者都满足返回true,否则返回false。 解题思路: 判断输⼊是否为负数,判断n是否为素数,把n转换为d进制再反过来转换为10进制,判断是否为素数。代码如下: #include<iostream> #include<cmath> using namespace std; bool judge(int n) { // 1不是素数 if(n <= 1) { return fa.原创 2021-04-24 21:45:19 · 157 阅读 · 0 评论 -
PAT 1013 Battle Over Cities (25) [图的遍历,统计连通分量的个数,DFS] HERODING的PAT之路
题目大意: 给你几个城市以及连通这几个城市的路线,问如果撤了一个城市,那么需要重新绘制多少个路线才能全部连通。 解题思路: 该题本质就是计算撤了一个城市后,连通图的个数,解决方法自然是图的遍历和深度优先,用的是最常规的方法,定义临界矩阵,访问数组,每遍历一个城市就更新访问数组,代码如下: #include<iostream> #include<algorithm> using namespace std; // 定义好邻接矩阵,访问数组,城市个数 int connect[101原创 2021-04-24 20:40:22 · 246 阅读 · 1 评论 -
PAT 1012 The Best Rank (25) [排序] HERODING的PAT之路
题目大意: 现已知n个考⽣的3⻔分数,平均分可以按照这三⻔算出来。然后分别对这四个分数从⾼到低排序,这样对每个考⽣来说有4个排名。k个查询,对于每⼀个学⽣id,输出当前id学⽣的最好的排名和它对应的分数,如果名次相同,按照A>C>M>E的顺序输出~如果当前id不存在,输出N/A。 解题思路: 题目本身不难,就是特别复杂,还有需要注意怎么处理列排序问题,首先对于每个学生,用结构体去存储数据,排名的话要注意1,1,3,4,5情况时,不能输出1,1,2,3,4,整体思路如下: 提前构建好结构体原创 2021-04-24 18:46:43 · 221 阅读 · 0 评论 -
PAT 1012 World Cup Betting (20) [查找元素] HERODING的PAT之路
题目大意: 给出三场⽐赛以及每场⽐赛的W、T、L的赔率,选取每⼀场⽐赛中赔率最⼤的三个数a b c,先输出三⾏各⾃选择的是W、T、L中的哪⼀个,然后根据计算公式 (a * b * c * 0.65 – 1) * 2 得出最⼤ 收益 解题思路: 这道题没有什么算法,就是普通的暴力题,找到每行的最大值,然后输出当前下标所代表的编号(WTL),最后统一计算即可,没有什么花里胡哨的操作,代码如下: #include<iostream> using namespace std; int main()原创 2021-04-23 19:55:09 · 260 阅读 · 0 评论 -
PAT 1010 Radix (25) [⼆分法] HERODING的PAT之路
题目大意: 比较两个输入的不确定进制的数是否可能有相同的值,tag表示给定的是前者还是后者的进制(1表示前者,2表示后者),radix表示给的进制数。 解题思路: 这道题算是PAT中比较复杂的题型了,关键在于二分法的使用。一般什么时候使用二分法呢?有序!即使不是数组有序,代表某种有序的数,也都是使用二分法,二分法可以有效降低时间复杂度,对于这道题,暴力也是可以的,但是会有部分测试样例超时,整体思路如下: 首先封装好两个函数,一个用来计算转成十进制的值,因为我们最后比较还是通过十进制比较的。第二个函数是返回原创 2021-04-23 19:30:01 · 207 阅读 · 0 评论 -
PAT 1009 Product of Polynomials HERODING的PAT之路
This time, you are supposed to find A×B where A and B are two polynomials. Input Specification: Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N1 aN1 N2 aN2 …原创 2021-04-06 15:23:14 · 175 阅读 · 0 评论 -
PAT 1008 Elevator HERODING的PAT之路
The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one floor, and 4 seconds to原创 2021-04-06 14:46:47 · 163 阅读 · 0 评论 -
PAT 1007 Maximum Subsequence Sum HERODING的PAT之路
Given a sequence of K integers { N1, N2, …, NK }. A continuous subsequence is defined to be { Ni, Ni+1, …, Nj } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the largest sum of its elements. For example, g原创 2021-04-05 20:38:31 · 161 阅读 · 0 评论 -
PAT 1006 Sign In and Sign Out HERODING的PAT之路
At the beginning of every day, the first person who signs in the computer room will unlock the door, and the last one who signs out will lock the door. Given the records of signing in’s and out’s, you are supposed to find the ones who have unlocked and loc原创 2021-04-05 16:39:13 · 156 阅读 · 0 评论 -
PAT 1005 Spell It Right HERODING的PAT之路
Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English. Input Specification: Each input file contains one test case. Each case occupies one line which contains an N (≤10100).原创 2021-04-03 14:34:34 · 132 阅读 · 0 评论 -
PAT 1004 Counting Leaves HERODING的PAT之路
A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test case. Each case starts with a line containing 0<N<100, the number of nodes原创 2021-04-03 12:30:41 · 162 阅读 · 1 评论 -
PAT 1003 Emergency (25) [Dijkstra算法] HERODING的PAT之路
As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked原创 2021-02-27 23:18:34 · 183 阅读 · 1 评论 -
PAT 1002 A+B for Polynomials (25) HERODING的PAT之路
This time, you are supposed to find A+B where A and B are two polynomials. Input Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N1 aN1 N2 aN2 … NK aNK, where K is the number of原创 2021-02-26 00:20:26 · 187 阅读 · 0 评论 -
PAT1001 A+B Format HERODING的PAT之路
Calculate a + b and output the sum in standard format — that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Each input file contains one test case. Each case contains a pair of integers a and原创 2021-02-25 16:37:59 · 182 阅读 · 1 评论
分享