pat甲乙级考试练习
PAT (Basic Level) Practice (中文)
PAT (Advanced Level) Practice
Adongua
码码不易,瓜某不瓜
展开
-
题255.pat甲级练习-1073 Scientific Notation (20 分)
文章目录题254.pat甲级练习-1073 Scientific Notation (20 分)一、题目二、题解题254.pat甲级练习-1073 Scientific Notation (20 分)一、题目二、题解#include <bits/stdc++.h>using namespace std;int main(){ string A; cin>>A; int sign=1; if(A[0]=='-') {原创 2022-03-14 13:13:54 · 233 阅读 · 0 评论 -
题236.pat甲级练习-1072 Gas Station (30 分)
文章目录题236.pat甲级练习-1072 Gas Station (30 分)一、题目二、题解题236.pat甲级练习-1072 Gas Station (30 分)一、题目二、题解 本题要求得到一个最好位置的加油站,该加油站到houses的距离中的最短距离需要在所有加油站这方面中是最大的,即求最大最小距离(由题目中的这句话可以看出:A gas station has to be built at such a location that the minimum distance be原创 2022-03-04 20:35:27 · 540 阅读 · 0 评论 -
题235.pat甲级练习-1067 Sort with Swap(0, i) (25 分)
文章目录题235.pat甲级练习-1067 Sort with Swap(0, i) (25 分)一、题目二、题解题235.pat甲级练习-1067 Sort with Swap(0, i) (25 分)一、题目二、题解 根据题目给的操作示例可知,它是通过以0为基准不断与其他不正确的位置的数(当前0所在的位置应该放与那个位置对应值相同的数)进行交换来使得整体有序的(当然这个排序方式和平常我们的高效率的排序方式很不一样,因为这里刚好是0到N-1的完整整数序列,和位置0开始连续一直到N-1正好原创 2022-03-04 20:11:19 · 253 阅读 · 0 评论 -
题234.pat甲级练习-1071 Speech Patterns (25 分)(注意测试点2)
文章目录题234.pat甲级练习-1071 Speech Patterns (25 分)一、题目二、题解题234.pat甲级练习-1071 Speech Patterns (25 分)一、题目二、题解 本题要你统计给的语句中出现单词的次数,输出出现次数最大的单词以及次数。需要注意的是本题给出的单词的定义,只有由0-9,a-z,A-Z组成的字符串才叫做单词。所以不妨按如下思路处理:①用while带着cin去每次输入一个不带空格的字符串(当不再输入时即整条语句输入结束)②然后在循环体里面处原创 2022-03-04 19:07:29 · 706 阅读 · 0 评论 -
题232.pat甲级练习-1059 Prime Factors (25 分)
文章目录题232.pat甲级练习-1059 Prime Factors (25 分)一、题目二、题解题232.pat甲级练习-1059 Prime Factors (25 分)一、题目二、题解 #include <bits/stdc++.h>using namespace std;const int maxn=1000000;int cnt;int p[maxn],vis[maxn];void isPrime(int n)//这里采用线性筛法{ for原创 2022-03-03 22:35:15 · 139 阅读 · 0 评论 -
题197.pat甲级练习-1048 Find Coins (25 分)
文章目录题197.pat甲级练习-1048 Find Coins (25 分)一、题目二、题解题197.pat甲级练习-1048 Find Coins (25 分)一、题目二、题解 本题要你从一堆硬币中找到两枚硬币能够凑成要的钱,可以直接转换成一直一枚硬币的值,去看要凑的钱-这枚硬币值得到的值的硬币是否存在,直接用哈希思想就好了。代码如下:#include <bits/stdc++.h>using namespace std;int value[2001];//开原创 2022-01-15 23:55:53 · 241 阅读 · 0 评论 -
题196.pat甲级练习-1047 Student List for Course (25 分)
文章目录题196.pat甲级练习-1047 Student List for Course (25 分)一、题目二、题解题196.pat甲级练习-1047 Student List for Course (25 分)一、题目二、题解 输入时将名字入到对应课程表示的容器下就好,最最需要注意的是,输入输出只能想办法用scanf和printf,不然一定会超时。下面是用set来装人名的代码,仍然超时了就是了,后面会给出正确代码。//用set仍然超时,insert会多耗时间的#include原创 2022-01-15 23:31:22 · 260 阅读 · 0 评论 -
题195.pat甲级练习-1046 Shortest Distance (20 分)
文章目录题195.pat甲级练习-1046 Shortest Distance (20 分)一、题目二、题解题195.pat甲级练习-1046 Shortest Distance (20 分)一、题目二、题解 本题给定当i位置到i+1,即下一个位置的距离,到最后是回到初始位置的距离,这样就形成了一个回路,这种“绕圈现象”的问题,我们很可能想到队列模拟去实现要求的从某位置到某位置的最短距离解,由于是两个方向都能走,所以用了deque。但是嘞这样会超时,导致失分,代码如下://队列模拟#原创 2022-01-15 22:30:19 · 314 阅读 · 0 评论 -
题186.pat甲级练习-1044 Shopping in Mars (25 分)(滑动窗口)
文章目录题186.pat甲级练习-1044 Shopping in Mars (25 分)一、题目二、题解题186.pat甲级练习-1044 Shopping in Mars (25 分)一、题目二、题解 依题目大意,说白了就是要你输出连续子列和等于M的所有区间,要是没有等于M的就输出大于M中最小的(比M大但最接近M的)。其实上述可看作一个问题,即求连续子列和最小值问题,这个最小值需要>=M且越接近M越好。因为是对于本题且为连续子列和问题,所以我们可以单纯用一个普通的队列queu原创 2022-01-04 18:35:39 · 424 阅读 · 0 评论 -
题185.pat甲级练习-1042 Shuffling Machine (20 分)
文章目录题185.pat甲级练习-1042 Shuffling Machine (20 分)一、题目二、题解题185.pat甲级练习-1042 Shuffling Machine (20 分)一、题目二、题解 本题让你洗牌,每轮洗牌将当前位置的牌放到输入的规则规定的位置即可。#include <bits/stdc++.h>using namespace std;string cards[21][55];int rule[55];int main(){原创 2022-01-04 17:46:11 · 752 阅读 · 0 评论 -
题184.pat甲级练习-1040 Longest Symmetric String&最长对称子串 (25 分)
文章目录题184.pat甲级练习-1040 Longest Symmetric String&最长对称子串 (25 分)一、题目二、题解题184.pat甲级练习-1040 Longest Symmetric String&最长对称子串 (25 分)一、题目二、题解 想要判断子串是否对称一个很好的办法就是以假设子串字符数为奇数,以字符串中的某个字符为对称中心向左右两边同时扩展,看str[i-j]时候等于str[i+j],如果是的话就对称子串长度加2,不是就break;子串字符原创 2022-01-04 17:38:17 · 529 阅读 · 0 评论 -
题178.pat甲级练习-1034 Head of a Gang (30 分)
文章目录题178.pat甲级练习-1034 Head of a Gang (30 分)一、题目二、题解题178.pat甲级练习-1034 Head of a Gang (30 分)一、题目二、题解 本题要你找出总通话时间大于K,并且圈子人数大于2人的圈子,输出每个符合条件的圈子中通话时间最长的人以及圈子的人数,并注意输出顺序按名字字典序。本质就是个并查集问题,难度不大,就是想的时候感觉要照顾的信息有点多,又要并查得到圈子人数以及圈子的总通话时间又要知道每个圈子里的人这样才方便找圈子中最长原创 2021-12-29 23:14:41 · 342 阅读 · 0 评论 -
题151.pat甲级练习-1037 Magic Coupon (25 分)
文章目录题151.pat甲级练习-1037 Magic Coupon (25 分)一、题目二、题解题151.pat甲级练习-1037 Magic Coupon (25 分)一、题目二、题解 本题要求用一个c和一个p去搭配,最后得到的选取的c*p的总和最大。为了使得价值最大,我们肯定会选择正数和正数搭配,负数和负数搭配,且每次搭配都要是当前能够搭配的最大价值,这里我用了priority_queue来处理。输入的时候将正数的c,p分别放在两个pq(大顶堆)里头,然后后期直接每次同时出队,搭配的原创 2021-11-17 20:39:43 · 142 阅读 · 0 评论 -
题146.pat甲级练习-1033 To Fill or Not to Fill (25 分)
文章目录题146.pat甲级练习-1033 To Fill or Not to Fill (25 分)一、题目二、题解题146.pat甲级练习-1033 To Fill or Not to Fill (25 分)一、题目二、题解本题要你求从开始位置0(注意不一定一开始就是在加油站,得看后面怎么输入的)到指定距离的最少加油钱总和。我们可以采用贪心的策略,由局部最优得到整体最优。大致思路如下:1.开始我们先把输入的加油站装成结构体数组,然后按照距离和加油钱从小到大排序。2.每次,我们站在当原创 2021-11-12 21:12:04 · 755 阅读 · 0 评论 -
题143.pat甲级练习-1032 Sharing (25 分)
文章目录题143.pat甲级练习-1032 Sharing (25 分)一、题目二、题解题143.pat甲级练习-1032 Sharing (25 分)一、题目二、题解题目要求找到共用链表的表头的地址输出,我采用的路子是分开遍历两个单词,把遍历到的节点地址对应flag++,然后看谁最先flag=2就输出。#include <bits/stdc++.h>using namespace std;char data0[100000];int flag[100000],n原创 2021-11-05 11:54:37 · 119 阅读 · 0 评论 -
题141.pat甲级练习-1031 Hello World for U (20 分)
文章目录题141.pat甲级练习-1031 Hello World for U (20 分)一、题目二、题解题141.pat甲级练习-1031 Hello World for U (20 分)一、题目二、题解本题让打印一堆字母组成的满足约定条件的U,我是采用的整体思路是将字母放到一个适当大小的二维数组里头,然后打印二维数组。对此关键在于得到二维数组的行数和列数,相关操作见注释。#include <bits/stdc++.h>using namespace std;in原创 2021-11-03 10:43:55 · 168 阅读 · 0 评论 -
题140.pat甲级练习-1029 Median (25 分)
文章目录题140.pat甲级练习-1029 Median (25 分)一、题目二、题解题140.pat甲级练习-1029 Median (25 分)一、题目二、题解本题就是要你求两个非递减序列合并之后的中位数,若第一个数编号为1,最后一个数编号为k,显然题目所说的中位数位置为k/2,所以我们不妨将res从下标为1开始放,这样便于不过脑地输出(当时就nt从下标为0开始放,然后还直接输出res[k/2])#include <bits/stdc++.h>using namesp原创 2021-10-29 22:22:02 · 133 阅读 · 0 评论 -
题134.pat甲级练习-1023 Have Fun with Numbers (20 分)
文章目录题134.pat甲级练习-1023 Have Fun with Numbers (20 分)一、题目二、题解题134.pat甲级练习-1023 Have Fun with Numbers (20 分)一、题目二、题解看到题目说输入的数位数最多为20你就可以断定用普通的乘2得到结果进行比对肯定不行,因为数太大了,这时候我们自然就会想到用模拟竖式乘法来处理它。#include <bits/stdc++.h>using namespace std;map<in原创 2021-10-14 22:23:26 · 136 阅读 · 0 评论 -
题133.pat甲级练习-1022 Digital Library (30 分)(注意输入问题)
文章目录题133.pat甲级练习-1022 Digital Library (30 分)(注意输入问题)一、题目二、题解题133.pat甲级练习-1022 Digital Library (30 分)(注意输入问题)一、题目二、题解本题难度不大,活用map和set存数据,查数据就好,但是注意输入问题!!!#include <bits/stdc++.h>using namespace std;int main(){ map<string,set<原创 2021-10-13 21:38:36 · 92 阅读 · 0 评论 -
题131.pat甲级练习-1019 General Palindromic Number (20 分)
文章目录题131.pat甲级练习-1019 General Palindromic Number (20 分)一、题目二、题解题131.pat甲级练习-1019 General Palindromic Number (20 分)一、题目二、题解本题要你判断进制转换后的N是否为回文数,思路简单,但是要注意一点,就是进制转换后有些位数可能是不是个位数,所以不能单纯的转换位字符串之后reverse判断相等来判断是否为回文数(比如我转换后为1010,此时就是回文数,但是reverse判断就不是了),原创 2021-10-11 16:17:41 · 92 阅读 · 0 评论 -
题117.pat甲级练习-1015 Reversible Primes (20 分)
文章目录题117.pat甲级练习-1015 Reversible Primes (20 分)一、题目二、题解题117.pat甲级练习-1015 Reversible Primes (20 分)一、题目二、题解这道题的难点在于理解题目意思,它倒置的是N转化为对应进制的数,然后判断这倒置后的数转为十进制是否还是质数,若还是质数那么为Yes,否则要是一开始就不是质数或转化后不是质数那就是No#include <bits/stdc++.h>using namespace std原创 2021-09-30 15:37:19 · 89 阅读 · 0 评论 -
题109.pat甲级练习-1009 Product of Polynomials (25 分)
文章目录题109.pat甲级练习-1009 Product of Polynomials (25 分)一、题目二、题解题109.pat甲级练习-1009 Product of Polynomials (25 分)一、题目二、题解本题经典只考虑非零项,不然测试点0过不去#include <bits/stdc++.h>using namespace std;int main(){ map<int,float,greater<int>>原创 2021-09-23 16:48:46 · 85 阅读 · 0 评论 -
题108.pat甲级练习-1007 Maximum Subsequence Sum (25 分)
文章目录题108.pat甲级练习-1007 Maximum Subsequence Sum (25 分)一、题目二、题解题108.pat甲级练习-1007 Maximum Subsequence Sum (25 分)一、题目二、题解求最大子列和的问题,我们采用在线处理来解决,用一个for循环去从头到尾遍历数组,设一个当前和以及一个最大和,每次都把一个数组的元素加到当前和中,然后去和最大和比较,若更大,则更新,若当前和为负数,则此后再加一个正数也不会比只要那一个正数大,所以直接舍去它,将当前和原创 2021-09-23 16:12:28 · 96 阅读 · 0 评论 -
题107.pat甲级练习-1006 Sign In and Sign Out (25 分)
文章目录题106.pat甲级练习-1006 Sign In and Sign Out (25 分)一、题目二、题解题106.pat甲级练习-1006 Sign In and Sign Out (25 分)一、题目二、题解输入时转化时间,然后用map作为时间轴标记ID就好#include <bits/stdc++.h>using namespace std;int main(){ map<int,string> time; int N;原创 2021-09-22 21:52:04 · 70 阅读 · 0 评论 -
题106.pat甲级练习-1004 Counting Leaves (30 分)
文章目录题105.pat甲级练习-1004 Counting Leaves (30 分)一、题目二、题解题105.pat甲级练习-1004 Counting Leaves (30 分)一、题目二、题解本题要你去数树的每一层的叶节点个数,我们可以通过改造bfs来解决这个问题,核心操作就是碰到每一层的叶节点时对用于记录每一层叶节点树的数组的元素加1#include <bits/stdc++.h>using namespace std;int N,M;int G[101原创 2021-09-22 11:28:25 · 109 阅读 · 0 评论 -
题103.pat甲级练习-1001 A+B Format (20 分)
文章目录题103.pat甲级练习-1001 A+B Format (20 分)一、题目二、题解题103.pat甲级练习-1001 A+B Format (20 分)一、题目二、题解按要求拼接字符串就好#include <bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>>b; string temp,res=""; temp=to_st原创 2021-09-21 22:28:02 · 78 阅读 · 0 评论