PAT题目练习
文章平均质量分 58
此杭非彼航
凡是过往,皆为序章
展开
-
PAT 1163 Dijkstra Sequence(30)
代码】PAT1163DijkstraSequence(30)原创 2022-07-26 18:22:15 · 418 阅读 · 1 评论 -
PAT 1162 Postfix Expression(25)
当只有右子树时,遍历顺序是根节点->右子树,其余情况都是左子树->右子树->根节点。原创 2022-07-26 18:18:58 · 196 阅读 · 0 评论 -
PAT1165 Block Reversing(25)
给block标序号(index),同一个block内的结点按原始顺序标号(init_pos),然后按照index从大到小排序,同一个block按init_pos从小到大排序。虽然例题中所有的结点都是可用的,但测试点所给的数据是有可能存在脏数据的,因为在输出时不能下意识地按n输出,而是要按vec内实际的数量输出(vec.size())。但谁能想到,我一开始改了for循环的n,却忘了改if判断里的n,一直是if(i==n-1),直接导致我最后一个测试点一直无法通过,好笨。...原创 2022-07-25 17:39:43 · 144 阅读 · 0 评论 -
PAT1166 Summit(25)
含注释原创 2022-07-24 18:25:56 · 148 阅读 · 0 评论 -
PAT 1167 Cartesian Tree(30)
PAT 1167 Cartesian Tree 含注释原创 2022-07-24 17:07:20 · 231 阅读 · 0 评论 -
PAT甲级题目答案与经验总结文章链接目录(持续更新,大家放心关注)
目录PAT题目答案与经验总结1(1115,1139,1142,1143)PAT题目答案与经验总结2(1148,1149)原创 2021-12-18 16:46:51 · 415 阅读 · 2 评论 -
PAT题目答案与经验总结2(持续更新,大家放心关注)
PAT—甲级1148 Werewolf - Simple Version (20 分)题目链接AC代码注意事项1149 Dangerous Goods Packaging (25 分)题目链接AC代码注意事项1148 Werewolf - Simple Version (20 分)题目链接https://pintia.cn/problem-sets/994805342720868352/problems/1038429808099098624AC代码#include<bits/stdc++.原创 2021-12-18 16:41:24 · 1148 阅读 · 1 评论 -
PAT题目答案与经验总结1(持续更新,大家放心关注)
PAT—甲级1139 First Contact (30 分)题目链接AC代码注意事项PAT 1142. Maximal Clique (25分)题目链接AC代码注意事项1143 Lowest Common Ancestor (30 分)题目链接AC代码注意事项1139 First Contact (30 分)题目链接https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312AC代码#include&l原创 2021-12-05 15:37:43 · 4036 阅读 · 2 评论 -
PAT——1074 Reversing Linked List 甲级(最后一个测试点着重说明)
1074 Reversing Linked List题目AC代码注意题目https://pintia.cn/problem-sets/994805342720868352/problems/994805394512134144AC代码#include<bits/stdc++.h>using namespace std;struct node{ int val,next;};struct node1{ int add,val;};unordered_map<int,n原创 2021-11-28 15:26:15 · 311 阅读 · 2 评论 -
PAT——1073 Scientific Notation 甲级
1073 Scientific Notation题目AC代码(参考)参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805395707510784AC代码(参考)#include<bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; int posE=s.find('E'); string t=s.subs原创 2021-11-27 18:51:08 · 456 阅读 · 2 评论 -
PAT——1080 Graduate Admission 甲级
1080 Graduate Admission题目AC代码第一遍AC第二遍AC(参考)说明参考文章题目https://pintia.cn/problem-sets/994805342720868352/problems/994805387268571136AC代码第一遍AC#include<bits/stdc++.h>using namespace std;int n,m,k,t;struct node{ int id,ge,gi,sum;};vector<node&原创 2021-11-25 17:49:53 · 180 阅读 · 2 评论 -
PAT——1079 Total Sales of Supply Chain 甲级(dfs)
1079 Total Sales of Supply Chain题目AC代码总结题目https://pintia.cn/problem-sets/994805342720868352/problems/994805388447170560AC代码#include<bits/stdc++.h>using namespace std;unordered_map<int,int> vis,amount;unordered_map<int,vector<int>原创 2021-11-24 20:19:31 · 305 阅读 · 2 评论 -
PAT——1078 Hashing(大家好久不见)
1078 Hashing题目AC代码注意题目https://pintia.cn/problem-sets/994805342720868352/problems/994805389634158592AC代码#include<bits/stdc++.h>using namespace std;int isPrime(int x){ if(x<=1) return 0; else if(x==2) return 1; for(int i=2;i<=sqrt(x);i+原创 2021-11-23 21:07:12 · 576 阅读 · 2 评论 -
PAT——1077 Kuchiguse 甲级
1077 Kuchiguse题目题意代码逻辑AC代码题目https://pintia.cn/problem-sets/994805342720868352/problems/994805390896644096题意找到最长的公共后缀,没有则输出nai(吐槽一下,题目那么长,最后就只有the longest common suffix of all N lines这句话有用)代码逻辑将输入的每个字符串都反转一下,相当于对齐后端,然后逐个比较,并将符合条件的字符赋值给ans,不能满足所有字符串相等原创 2021-10-31 14:12:44 · 95 阅读 · 3 评论 -
PAT——1083 List Grades 甲级
1083 List Grades题目AC代码注意题目https://pintia.cn/problem-sets/994805342720868352/problems/994805383929905152AC代码#include<bits/stdc++.h>using namespace std;struct node{ string name,id; int grade;}; bool cmp(node x,node y){ return x.grade>y.gr原创 2021-10-30 16:36:36 · 63 阅读 · 2 评论 -
PAT——1082 Read Number in Chinese 甲级
1082 Read Number in Chinese题目注意AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805385053978624注意102345读作10万零两千三百四十五,100002345读作一亿零两千三百四十五所以下面这行代码,我把原来的j!=0删掉了if(!zero&&j!=0&&n/J[curpos]>=10) zero=true;当然,这个原创 2021-10-29 12:37:29 · 208 阅读 · 2 评论 -
PAT——1081 Rational Sum 甲级
1081 Rational Sum题目AC代码注意题目https://pintia.cn/problem-sets/994805342720868352/problems/994805386161274880AC代码#include<bits/stdc++.h>using namespace std;typedef long long ll;ll gcd(ll x,ll y){ while(y!=0) { ll t=x%y; x=y; y=t; } retur原创 2021-10-28 14:58:36 · 81 阅读 · 2 评论 -
PAT——1087 All Roads Lead to Rome 甲级
1087 All Roads Lead to Rome题目AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805379664297984AC代码#include<bits/stdc++.h>using namespace std;const int inf=999999;int n,k;map<string,int> m;map<int,string> m1;i原创 2021-10-27 21:07:29 · 86 阅读 · 2 评论 -
PAT——1086 Tree Traversals Again (25 分) 甲级
1086 Tree Traversals Again (25 分) 题目代码逻辑AC代码本人代码参考代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805380754817024代码逻辑本人的代码逻辑,是通过栈的push和pop建立一颗树,并对树做后序遍历参考的代码逻辑,则是栈本身的进出逻辑符合左根右的中序遍历,而push的顺序则符合根左右的前序遍历。在得到前序序列和中序序列后,结合二者转为后序即可AC代码原创 2021-10-26 17:39:05 · 132 阅读 · 2 评论 -
PAT——1085 Perfect Sequence 甲级
1085 Perfect Sequence题目代码逻辑注意AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805381845336064代码逻辑先排序,排序后的数组的每一个连续子序列的开头和结尾就是最小值和最大值。所以从头遍历,在固定开头位置(最小值)后,通过upper_bound函数,二分查找第一个大于num的数字,那么该数字的前一个位置与开头位置组成的数列就是完美数列,最后比较个数选出最大的即可。注意原创 2021-10-25 21:07:23 · 106 阅读 · 2 评论 -
PAT——1084 Broken Keyboard 甲级(find,toupper两个函数直接搞定)
1084 Broken Keyboard题目AC代码参考代码(很巧妙)本人代码(常规)参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805382902300672AC代码参考代码(很巧妙)#include<bits/stdc++.h>using namespace std;int main(){ string s1,s2,ans; cin>>s1>>s2; for(原创 2021-10-24 08:35:06 · 50 阅读 · 2 评论 -
PAT——1091 Acute Stroke 甲级(bfs)
1091 Acute Stroke题目AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805375457411072AC代码#include<bits/stdc++.h>using namespace std;struct node{ int x,y,z;};int m,n,l,t;int a[1301][131][61];bool vis[1301][131][61];int X原创 2021-10-23 16:57:55 · 87 阅读 · 2 评论 -
PAT——1090 Highest Price in Supply Chain 甲级(dfs)
1090 Highest Price in Supply Chain题目注意AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805376476626944注意不能用map,会出现段错误;使用unordered_map是因为它不需要排序效率较高,能够满足题目要求AC代码#include<bits/stdc++.h>using namespace std;int n,root=-1,maxde原创 2021-10-20 19:09:17 · 86 阅读 · 4 评论 -
PAT-1089 Insert or Merge 甲级
1089 Insert or Merge题目AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805377432928256AC代码#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int a[n+1],b[n+1],index=1,flag=1; for(int i=1;i<=原创 2021-10-18 21:39:01 · 59 阅读 · 2 评论 -
PAT——1088 Rational Arithmetic 甲级
1088 Rational Arithmetic题目代码解析AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805378443755520代码解析本题主要讲解func函数,我将给出当m=-8,n=6时的函数处理流程,供大家参考AC代码#include<bits/stdc++.h>using namespace std;typedef long long ll;ll a,b,c,d;l原创 2021-10-17 14:52:45 · 70 阅读 · 2 评论 -
PAT——1095 Cars on Campus 甲级
1095 Cars on Campus题目注意AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805371602845696注意相较于参考文章,我采用了string替代字符数组,方便比较;但对于string的输入还是不能用scanf,即使网上有scanf获取string类型字符串的方法,但都需要用c_str(),string类型的变量本身仍然是空的(无法比较),所以还是要用cinprintf("%d原创 2021-10-16 21:13:27 · 57 阅读 · 2 评论 -
PAT——1094 The Largest Generation 甲级(dfs和bfs均可)
1094 The Largest Generation题目题意代码解析AC代码题目https://pintia.cn/problem-sets/994805342720868352/problems/994805372601090048题意给出一颗家族树,输出拥有最多节点的层的节点数和层数代码解析都是dfs和bfs的模板,需要熟练掌握AC代码#include<bits/stdc++.h>using namespace std;unordered_map<int,vect原创 2021-10-13 16:53:00 · 67 阅读 · 2 评论 -
PAT——1093 Count PAT‘s 甲级
1093 Count PAT's题目题意代码解析AC代码本人代码参考代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805373582557184题意求出给定的字符串还有多少个“PAT”子串代码解析两段代码都是一个意思,就是每一个A前后的P和T的数量相乘就是这个A对应的PAT子串数量,遍历每一个A并加和就是最终的结果我自己的思路就是通过upper_bound函数寻找A前后的P、T数量,但第二段代码明显更简洁原创 2021-10-12 18:46:26 · 123 阅读 · 2 评论 -
PAT——1092 To Buy or Not to Buy 甲级
1092 To Buy or Not to Buy题目题意代码解析AC代码题目1092 To Buy or Not to Buy题意判断店家手中的珠串能否满足Eva的需求,如果能输出Eva需要额外买的珠子数量(因为店家只卖整串),否则输出缺了几个珠子代码解析通过map统计店家以及Eva各个种类的珠子数目,通过set将额、Eva的字符串去重后逐个与店家比较,一旦出现少的情况就将少的数量放入sum中;最后如果sum不为0,说明出现了少珠子的情况,输出No,否则输出Yes也可以只记录店家的珠子数目,原创 2021-10-11 19:59:30 · 65 阅读 · 2 评论 -
PAT——1099 Build A Binary Search Tree 甲级(dfs+bfs)
1099 Build A Binary Search Tree题目题意代码解析AC代码题目https://pintia.cn/problem-sets/994805342720868352/problems/994805367987355648题意给出一棵树的对应结构以及一组数字,我们需要将这组数字放入二叉树中并保证最终的树是二叉搜索树(左小右大)代码解析二叉搜索树的中序遍历(左根右)是一个升序序列,所以我们通过dfs获取到这个表示位置的升序序列后,将其与排序后的原数组通过val进行匹配最终通原创 2021-10-09 16:04:50 · 84 阅读 · 2 评论 -
PAT——1098 Insertion or Heap Sort 甲级(超详细注释)
1098 Insertion or Heap Sort题目题意代码思路AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805368847187968题意首先,不了解堆排序流程的同学可以看看我的第二篇参考文章(插入排序较为简单,不会的同学自行学习)题目给出两个序列a、b,a为最初序列,b为排序过的序列,问排序方式是插入排序还是堆排序,并输出下一步的排序结果代码思路代码思路详见参考文章第一篇需要说明的是,原创 2021-10-08 17:32:37 · 131 阅读 · 2 评论 -
PAT——1097 Deduplication on a Linked List 甲级
1097 Deduplication on a Linked List题目题意代码解析AC代码题目https://pintia.cn/problem-sets/994805342720868352/problems/994805369774129152题意给出一个链表,输出去重(绝对值相同即为重复,保留顺序靠前的那个节点,其余删除)后的链表,以及包含所有被删除的节点的链表代码解析重点就是vis数组来判断是否重复,另外就是注意输出时的格式,整体难度不大AC代码#include<bits/原创 2021-10-07 17:24:38 · 110 阅读 · 2 评论 -
PAT——1096 Consecutive Factors 甲级(超详细注释)
1096 Consecutive Factors题目题意AC代码参考题目1096 Consecutive Factors题意输出长度最长的起始值最小的连续因子序列AC代码#include<bits/stdc++.h>using namespace std;long long int n,fac;//防止超限int main(){ cin>>n; int first=0,len=0,maxn=sqrt(n)+1; //连续因子数量超过两个,其上限最大为sqrt原创 2021-10-06 21:25:59 · 97 阅读 · 3 评论 -
PAT——1103 Integer Factorization 甲级(dfs+剪枝+快速幂,超详细注解)
1103 Integer Factorization 题目题意AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805364711604224题意需要说明的是,从1到n的数字的p次方只要小于等于n,就都有可能曾为目标因子,而非传统的因子概念AC代码#include<bits/stdc++.h>using namespace std;int n,k,p,maxfacSum=-1;vector原创 2021-10-05 16:54:01 · 233 阅读 · 2 评论 -
PAT——1102 Invert a Binary Tree 甲级
1102 Invert a Binary Tree题目题意代码解析AC代码题目https://pintia.cn/problem-sets/994805342720868352/problems/994805365537882112题意invert 反转,即将树中每个节点的左右孩子互换。在已知每个孩子的左右节点后,输出该树的层序遍历和中序遍历代码解析根节点的寻找方式为没有当过孩子的节点就是根节点层序遍历通过bfs,套用模板得出答案中序遍历通过dfs,按照左中右的顺序存入ans2中即可注意,原创 2021-10-04 17:38:10 · 112 阅读 · 2 评论 -
PAT——1101 Quick Sort 甲级
1101 Quick Sort题目题意代码解析AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805366343188480题意pivot 中心点,由题可知,快速排序的中心点就是左面都比它小、右边都比它大的位置对应的数字。题目给出一个数字序列,我们需要找出符合要求的中心点代码解析测试可知,一个符合要求的中心点,在排序后,其位置是不变的。但如果一个序列是降序序列,其中心位置(n为奇数时)的数的位置也是不变的原创 2021-10-03 14:39:03 · 123 阅读 · 2 评论 -
PAT——1100 Mars Numbers 甲级
1100 Mars Numbers题目题意代码分析AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805367156883456题意火星文是13进制,一共两位,每一位上的数字都有对应的字符串。题目要求实现火星文和地球文的互译代码分析详见参考文章AC代码#include<bits/stdc++.h>using namespace std;string ch1[13]={ "tret","原创 2021-09-29 20:27:19 · 74 阅读 · 2 评论 -
PAT——1107 Social Clusters 甲级(并查集)
1107 Social Clusters题目题意代码解析AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805361586847744题意给出n个学生各自的爱好,拥有相同爱好的同时视为在同一个社交网络中。本题需要求出社交网络总数,并按降序输出每个社交网络的人数代码解析find和combine都是并查集的老朋友了,不太了解的同学可以在CSDN上自学一下并查集。其中find函数的代码是和参考文章不同的,我采用原创 2021-09-28 19:56:41 · 126 阅读 · 2 评论 -
PAT——1106 Lowest Price in Supply Chain 甲级
1106 Lowest Price in Supply Chain题目题意代码解析本人参考AC代码本人代码参考代码注意参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805362341822464题意题目给出供应链也就是一棵树,下标0为树根,树根对应的价格为P。每向下一层,价格便会提升r%。题目最终要求出最低的价格以及其对应的零售商个数,翻译一下就是求最浅的层以及该层的叶子节点个数。代码解析本人将数据读入f后,原创 2021-09-27 21:10:57 · 186 阅读 · 2 评论 -
PAT——1105 Spiral Matrix 甲级
1105 Spiral Matrix题目题意代码解析AC代码参考题目https://pintia.cn/problem-sets/994805342720868352/problems/994805363117768704题意给出N个数字,按照从大到小的顺序螺旋输出m×n 的矩阵。其中m×n=N,m>=n且m与n的差值必须最小代码解析首先在sqrt(N)的左侧寻找符合要求的n,并根据n求出m将得到的数组排序后,开始螺旋填充数组中的数字。螺旋可以理解为遇到一面墙就转弯,如果没有遇到墙就直原创 2021-09-25 13:22:18 · 71 阅读 · 2 评论