文章目录
前言
按往年来看,每次考试中乙级的最后两题是甲级的前两题的中文版。按chen姥姥的建议,如果对于乙级题目:
- 15分题能10分钟完成
- 20分题能30分钟完成
- 25分题能45分钟完成
那么可以考虑开始甲级题目的练习,对于甲级题目的练习目标,按她的建议是:
- 10分钟读完4题
- 20分题20分钟完成
- 25分题1小时完成两道
- 剩下的看造化
甲级题库的正确刷题顺序
甲级题目和乙级题目相比较而言,甲级题目更有必要注意一下做题的顺序。
随着时间推移和顶级的开设,PAT乙级题目类型越来越趋于稳定,现在一些题目已经放到顶级题目中,甚至在考纲中也移除了相关知识点的要求,这些题目主要是动态规划和大模拟题,暂时刷题过程中可以跳过下方题目:
题号 | 题目 | 知识点 |
---|---|---|
1007 | Maximum Subsequence Sum(25) | 动态规划,最大连续子序列和 |
1014 | Waiting in Line (30) | queue的应用 |
1017 | Queueing at Bank (25) | 模拟 |
1026 | Table Tennis (30) | 模拟,排序 |
1040 | Longest Symmetric String (25) | 动态规划 |
1045 | Favorite Color Stripe (30) | 动态规划,LIS / LCS |
1068 | Find More Coins (30) | 01背包,动态规划 |
其次一些题目的出现频率较低,且近些年没有考察,也可放到后面来练习,题目如下:
题号 | 题目 | 知识点 |
---|---|---|
1010 | Radix (25) | 二分法 |
1016 | Phone Bills (25) | 排序 |
1033 | To Fill or Not to Fill (25) | 贪心算法 |
1056 | Mice and Rice (25) | queue的用法 |
1057 | Stack (30) | 树状数组 |
1066 | Root of AVL Tree (25) | 平衡二叉树(AVL树) |
1123 | Is It a Complete AVL Tree (30) | AVL树 |
每一个由20分、25 分、25分、30分形成一组的四道题为一次考试,所以,刷PAT甲级的算法题应该是这样:
打开题库从后往前整理一下每次考试的后两道题的题目类型(比如并查集、最短路径、图 的遍历、树的遍历、DFS、BFS、图的连通分量)
然后挑选分类从考察的多的开始逐个击破
题目列表&分类
按题号排序
1001-1100
题号 | 题目 | 类型 |
---|---|---|
1001 | A+B Format (20) | 字符串串处理理 |
1002 | A+B for Polynomials (25) | 模拟 |
1003 | Emergency (25) | Dijkstra算法 |
1004 | Counting Leaves (30) | BFS,DFS,树的层序遍历 |
1005 | Spell It Right (20) | 字符串串处理理 |
1006 | Sign In and Sign Out (25) | 查找元素 |
1007 | Maximum Subsequence Sum(25) | 动态规划,最⼤大连续⼦子序列列和 |
1008 | Elevator (20) | 数学问题 |
1009 | Product of Polynomials (25) | 模拟 |
1010 | Radix (25) | ⼆二分法 |
1011 | World Cup Betting (20) | 查找元素 |
1012 | The Best Rank (25) | 排序 |
1013 | Battle Over Cities (25) | 图的遍历,统计连通分量量的个数,DFS |
1014 | Waiting in Line (30) | queue的应⽤用 |
1015 | Reversible Primes (20) | 素数 |
1016 | Phone Bills (25) | 排序 |
1017 | Queueing at Bank (25) | 模拟 |
1018 | Public Bike Management (30) | Dijkstra算法 + DFS |
1019 | General Palindromic Number (20) | 回⽂文数 |
1020 | Tree Traversals (25) | ⼆二叉树的遍历,后序中序转层序 |
1021 | Deepest Root (25) | 图的遍历,DFS,计算连通分量量的个数 |
1022 | Digital Library (30) | map映射,STL的使⽤用 |
1023 | Have Fun with Numbers (20) | ⼤大整数运算 |
1024 | Palindromic Number (25) | ⼤大整数相加 |
1025 | PAT Ranking (25) | 排序 |
1026 | Table Tennis (30) | 模拟,排序 |
1027 | Colors in Mars (20) | 进制转换 |
1028 | List Sorting (25) | 排序 |
1029 | Median (25) | two pointers |
1030 | Travel Plan (30) | Dijkstra算法 + DFS,最短路路径,边权 |
1031 | Hello World for U (20) | 图形打印 |
1032 | Sharing (25) | 链表 |
1033 | To Fill or Not to Fill (25) | 贪⼼心算法 |
1034 | Head of a Gang (30) | 图的遍历,DFS |
1035 | Password (20) | 字符串串处理理 |
1036 | Boys vs Girls (25) | 查找元素 |
1037 | Magic Coupon (25) | 贪⼼心算法 |
1038 | Recover the Smallest Number (30) | 贪⼼心算法 |
1039 | Course List for Student (25) | 不不定⻓长数组vector,STL的使⽤用 |
1040 | Longest Symmetric String (25) | 动态规划 |
1041 | Be Unique (20) | Hash散列列 |
1042 | Shuffling Machine (20) | 模拟 |
1043 | Is It a Binary Search Tree (25) | ⼆二叉查找树BST |
1044 | Shopping in Mars (25) | ⼆二分查找 |
1045 | Favorite Color Stripe (30) | 动态规划,LIS / LCS |
1046 | Shortest Distance (20) | 模拟 |
1047 | Student List for Course (25) | 不不定⻓长数组vector,STL的使⽤用 |
1048 | Find Coins (25) | Hash散列列 |
1049 | Counting Ones (30) | 数学问题 |
1050 | String Subtraction (20) | Hash散列列 |
1051 | Pop Sequence (25) | 栈模拟 |
1052 | Linked List Sorting (25) | 链表 |
1053 | Path of Equal Weight (30) | 树的遍历 |
1054 | The Dominant Color (20) | map映射,STL的使⽤用 |
1055 | The World’s Richest (25) | 排序 |
1056 | Mice and Rice (25) | queue的⽤用法 |
1057 | Stack (30) | 树状数组 |
1058 | A+B in Hogwarts (20) | 进制转换 |
1059 | Prime Factors (25) | 素数表的建⽴立 |
1060 | Are They Equal (25) | 科学计数法 |
1061 | Dating (20) | 字符串串处理理 |
1062 | Talent and Virtue (25) | 排序 |
1063 | Set Similarity (25) | 集合set,STL的使⽤用 |
1064 | Complete Binary Search Tree (30) | ⼆二叉查找树BST |
1065 | A+B and C (64bit) (20) | 模拟 |
1066 | Root of AVL Tree (25) | 平衡⼆二叉树(AVL树) |
1067 | Sort with Swap(0,*) (25) | 贪⼼心算法 |
1068 | Find More Coins (30) | 01背包,动态规划 |
1069 | The Black Hole of Numbers (20) | 数学问题 |
1070 | Mooncake (25) | 贪⼼心算法 |
1071 | Speech Patterns (25) | map映射,STL的使⽤用 |
1072 | Gas Station (30) | Dijkstra算法 |
1073 | Scientific Notation (20) | 字符串串处理理 |
1074 | Reversing Linked List (25) | 链表 |
1075 | PAT Judge (25) | 排序 |
1076 | Forwards on Weibo (30) | 图的遍历,BFS |
1077 | Kuchiguse (20) | 字符串串处理理 |
1078 | Hashing (25) | ⼆二次⽅方探查法 |
1079 | Total Sales of Supply Chain (25) | DFS,BFS,树的遍历 |
1080 | Graduate Admission (30) | 排序 |
1081 | Rational Sum (20) | 分数的四则运算 |
1082 | Read Number in Chinese (25) | 字符串串处理理 |
1083 | List Grades (25) | 排序 |
1084 | Broken Keyboard (20) | Hash散列列 |
1085 | Perfect Sequence (25) | ⼆二分,two pointers |
1086 | Tree Traversals Again (25) | 树的遍历 |
1087 | All Roads Lead to Rome (30) | Dijkstra算法 + DFS,最短路路径 |
1088 | Rational Arithmetic (20) | 分数的四则运算 |
1089 | Insert or Merge (25) | two pointers |
1090 | Highest Price in Supply Chain (25) | 树的遍历 |
1091 | Acute Stroke (30) | ⼴广度优先搜索BFS |
1092 | To Buy or Not to Buy (20) | Hash散列列 |
1093 | Count PAT’s (25) | 逻辑题 |
1094 | The Largest Generation (25) | BFS,DFS,树的遍历 |
1095 | Cars on Campus (30) | map的⽤用法,排序 |
1096 | Consecutive Factors (20) | 逻辑题 |
1097 | Deduplication on a Linked List (25) | 链表 |
1098 | Insertion or Heap Sort (25) | heap sort(堆排序) |
1099 | Build A Binary Search Tree (30) | ⼆二叉查找树BST |
1100 | Mars Numbers (20) | map映射,STL的使⽤用 |
1101-1150
题号 | 题目 | 类型 |
---|---|---|
1101 | Quick Sort (25) | 快速排序 |
1102 | Invert a Binary Tree (25) | 树的遍历 |
1103 | Integer Factorization (30) | 深度优先搜索DFS |
1104 | Sum of Number Segments (20) | 数学问题 |
1105 | Spiral Matrix (25) | 模拟 |
1106 | Lowest Price in Supply Chain (25) | DFS,BFS,树的遍历 |
1107 | Social Clusters (30) | 并查集 |
1108 | Finding Average (20) | 字符串串处理理 |
1109 | Group Photo (25) | 逻辑题 |
1110 | Complete Binary Tree (25) | 完全⼆二叉树 |
1111 | Online Map (30) | Dijkstra算法 + DFS |
1112 | Stucked Keyboard (20) | map映射,STL的使⽤用 |
1113 | Integer Set Partition (25) | 排序 |
1114 | Family Property (25) | 并查集 |
1115 | Counting Nodes in a BST (30) | ⼆二叉树的遍历,DFS |
1116 | Come on! Let’s C (20) | 简单逻辑题 |
1117 | Eddington Number(25) | 简单逻辑题 |
1118 | Birds in Forest (25) | 并查集 |
1119 | Pre- and Post-order Traversals (30) | 树的遍历,前序后序转中序 |
1120 | Friend Numbers (20) | set的应⽤用 |
1121 | Damn Single (25) | set的应⽤用 |
1122 | Hamiltonian Cycle (25) | 图论 |
1123 | Is It a Complete AVL Tree (30) | AVL树 |
1124 | Raffle for Weibo Followers (20) | map映射 |
1125 | Chain the Ropes (25) | 排序,贪⼼心 |
1126 | Eulerian Path (25) | 连通图 |
1127 | ZigZagging on a Tree (30) | 中序后序建树,层序遍历 |
1128 | N Queens Puzzle (20) | 逻辑题 |
1129 | Recommendation System (25) | set的应⽤用,运算符重载 |
1130 | Infix Expression (25) | dfs深度优先搜索 |
1131 | Subway Map (30) | dfs深度优先搜索 |
1132 | Cut Integer (20) | 数学问题 |
1133 | Splitting A Linked List (25) | 链表 |
1134 | Vertex Cover (25) | hash散列列 |
1135 | Is It A Red-Black Tree (30) | 红⿊黑树 |
1136 | A Delayed Palindrome (20) | ⽔水题 |
1137 | Final Grading (25) | map映射,排序 |
1138 | Postorder Traversal (25) | 树的遍历,前序中序转后序 |
1139 | First Contact (30) | ⽔水题 |
1140 | Look-and-say Sequence (20) | 字符串串处理理 |
1141 | PAT Ranking of Institutions (25) | 排序,map STL |
1142 | Maximal Clique (25) | 图论,⽆无向完全图 |
1143 | Lowest Common Ancestor (30) | ⽔水题 |
1144 | The Missing Number (20) | STL,map |
1145 | Hashing – Average Search Time (25) | 哈希映射,哈希表,平⽅方探测法 |
1146 | Topological Order (25) | 拓拓扑排序 |
1147 | Heaps (30) | 堆,树的遍历 |
1148 | Werewolf – Simple Version (20) | ⽔水题 |
1149 | Dangerous Goods Packaging (25) | STL的应⽤用 |
1150 | Travelling Salesman Problem (25) | 图论 |
1151 | LCA in a Binary Tree (30) | 树的遍历,LCA算法 |
1152 | Google Recruitment (20) | 字符串串处理理 |
1153 | Decode Registration Card of PAT (25) | 模拟,排序,map |
1154 | Vertex Coloring (25) | set,hash |
1155 | Heap Paths (30) | 深搜回溯,堆 |
按题型分类
按题型排序可以从下面的分类方式出发,具体分类情况见文章《PAT甲级按题型分类》。
1. STL练习
2. 数据结构篇
2.1 线性表
结构框架
顺序结构:顺序表
链式结构:单链表、双链表、循环链表(指针);静态链表(借助数组)
2.2 栈&队
结构框架
栈:顺序栈、链栈、共享栈
队列:循环队列、链式队列、双端队列
数组(推广):一维数组、对维数组(压缩、稀疏矩阵)
2.3 串
结构框架
基本功概念:主串、子串、串长
存储结构:定长顺序存储、堆分配存储、块链存储
模式匹配算法:暴力匹配、KMP算法(部分匹配值表、next数组、next函数的推理)、kmp改进(nextval数组)
2.4 树与二叉树
结构框架
树的概念:定义、存储
树的操作:三种遍历、线索二叉树
树的应用:排序二叉树(平衡二叉树)、哈弗曼树
数和森林的概念:定义、存储
数和森林的操作:与二叉树的转换、遍历
数和森林的应用:并查集
2.5 图
结构框架
图的定义
图结构存储:邻接矩阵、邻接表、邻接多重表、十字链表
图的遍历:深度优先、广度优先
图的相关应用:最小生成树(Prim、Kruskal)、最短路径(Dijkstra、Floyd)、拓扑排序(AOV网)、关键路径(AOE网)
2.6 查找
结构框架
概念:静态查找、动态查找
线性结构:顺序查找、折半查找、分块查找
树形结构:二叉排序树、二叉平衡树、B树、B+树
散列表(散列结构):性能分析、冲突处理
平均查找长度(效率指标):查找成功、查找失败
2.7 排序
结构框架
内部排序:插入排序:直接插入排序、折半插入排序、希尔排序
交换排序:冒泡排序、快速排序
选择排序:简单选择排序、堆排序
归并排序
基数排序外部排序:
多路归并排序
3. 数学问题篇
4. 水题篇
5. 动态规划+贪心+two points
学习笔记部分
笔记的记录打算从这几个方面出发,分开记录
- 特定题型的套路写法
- 经常用到的各种函数,却容易遗忘的小技巧点
- 读题的时候看到的不认识单词
- 各种符号的语言表达
1. 题型的技巧套路
详细见另一篇文章《PAT甲级套路题型整理》
2. 编程语法小技巧备忘
详细见另一篇文章《PAT甲级常用函数&操作备忘》
3. 陌生单词语句整理
详细见另一篇文章《PAT甲级陌生单词整理》
4. 标点符号和数学符号所对应的英文
如下:
符号 | 英文写法 | 备注&解释 |
---|---|---|
` | grave accent | 重音符 |
~ | tilde | /‘tɪldə/ 波浪符号 |
~ | swung dash | 代字号,swing 摇摆 |
! | exclamation point | /ˌɛksklə’meʃən/ 感叹号 |
@ | at | 在… |
# | ① pound ②number | ① 井号 ② …号 |
$ | dollar | 美元符号 |
% | per cent | 百分比 |
^ | caret | 插入符号 |
… | ellipsis points | /ɪ’lɪpsɪs/ 省略号 |
& | ampersand = and | 和 |
* | asterisk | /‘æstərɪsk/ 星号 |
( ) | ① parenthesis ② round brackets | /pə’rɛnθəsɪs/ 圆括号,复数parentheses |
– | ① hyphen ② minus | ① /‘haɪfn/ 连字号 ② 减号 |
—— | dash | 破折号 |
_ | underline | 下划线 |
+ | plus | 加号 |
= | is equal to | 等于号 |
[ ] | square brackets | 方括号 |
{ } | curly brackets | 花括号,大括号 |
\ | backslash | 反斜杠 |
| | vertical bar,vertical virgul | 竖线 |
|| | parallel | 双线号 |
; | semicolon | 分号 |
: | colon | 冒号 |
‘’ | quotation mark | 引号 |
“” | double quotation mark | 双引号 |
’ | apostrophe | /ə’pɑstrəfi/ 撇号 |
, | comma | 逗号 |
<> | angle brackets | 尖括号 |
< | is less than | 小于号 |
> | is greater than | 大于号 |
《》 | French quotes | 书名号;法文符号 |
. | period,full stop,dot | 句号 |
/ | ① slash ② virgule | ① 斜线 ② /‘vɝgjʊl/ 置于二字之间表示任取一字均可的短斜线 |
// | ① slash-slash ② comment | ① 双斜线 ② 注释符 |
? | question mark | 问号 |
∵ | since,because | 因为 |
∴ | hence,therefore | 因此,所以 |
√ | square root | 平方根 |
∞ | infinity | /ɪn’fɪnəti/ 无穷号 |
℃ | Celsius system | /‘selsiəs/ 摄氏度 |
⊥ | perpendicular to | 垂直于 |
∩ | intersection of | 交集 |
∪ | union of | 并集 |
∑ | summation of | 总和 |
≡ | is equivalent to | 全等于号 |
≌ | Is congruent to | 全等号 |
≈ | is approximately equal to | 约等于号 |
~ | Is similar to | 相似 |
± | plus or minus | 正负号 |
x | is multiplied by | 乘号 |
÷ | is divided by | 除号 |
≠ | is not equal to | 不等于号 |
→ | arrow | 箭头 |
§ | section,division | 分节号 |
○ | circumference | 圆周 |
∷ | equals,as | 等于,成比例 |
‰ | per mill | 千分比 |
° | degree | 度 |
≥ | greater than or equal to | 大于等于号 |
≤ | less than or equal to | 小于等于号 |
— | division / fraction | 分号 |
mod | modulo | 模运算符 |
Δ | ① triangle ② Delta | ① 三角符号 ② 第四个希腊字母Delta |
≪ | much less than | 远小于 |
≫ | much greater than | 远大于 |
n! | factorial | 阶乘号 |