PAT甲级按题型分类
文章目录
1. STL练习
题号 | 题目 | 备注 |
---|---|---|
1022 | Digital Library (30) | map映射,STL的使⽤用 |
1039 | Course List for Student (25) | 不不定⻓长数组vector,STL的使⽤用 |
1047 | Student List for Course (25) | 不不定⻓长数组vector,STL的使⽤用 |
1054 | The Dominant Color (20) | map映射,STL的使⽤用 |
1063 | Set Similarity (25) | 集合set,STL的使⽤用 |
1071 | Speech Patterns (25) | map映射,STL的使⽤用 |
1100 | Mars Numbers (20) | map映射,STL的使⽤用 |
1112 | Stucked Keyboard (20) | map映射,STL的使⽤用 |
1120 | Friend Numbers (20) | set的应⽤用 |
1121 | Damn Single (25) | set的应⽤用 |
1124 | Raffle for Weibo Followers (20) | map映射 |
1129 | Recommendation System (25) | set的应⽤用,运算符重载 |
1144 | The Missing Number (20) | STL,map |
1149 | Dangerous Goods Packaging (25) | STL的应⽤用 |
2. 数据结构篇
2.1 线性表
结构框架
顺序结构:顺序表
链式结构:单链表、双链表、循环链表(指针);静态链表(借助数组)
题号 | 题目 | 备注 |
---|---|---|
1032 | Sharing (25) | 链表 |
1074 | Reversing Linked List (25) | 链表 |
1097 | Deduplication on a Linked List (25) | 链表 |
1133 | Splitting A Linked List (25) | 链表 |
2.2 栈&队
结构框架
栈:顺序栈、链栈、共享栈
队列:循环队列、链式队列、双端队列
数组(推广):一维数组、对维数组(压缩、稀疏矩阵)
题号 | 题目 | 备注 |
---|---|---|
1014 | Waiting in Line (30) | queue的应⽤用 |
1051 | Pop Sequence (25) | 栈模拟 |
1052 | Linked List Sorting (25) | 链表 |
1056 | Mice and Rice (25) | queue的⽤用法 |
2.3 串
结构框架
基本功概念:主串、子串、串长
存储结构:定长顺序存储、堆分配存储、块链存储
模式匹配算法:暴力匹配、KMP算法(部分匹配值表、next数组、next函数的推理)、kmp改进(nextval数组)
题号 | 题目 | 备注 |
---|---|---|
1001 | A+B Format (20) | 字符串串处理理 |
1005 | Spell It Right (20) | 字符串串处理理 |
1035 | Password (20) | 字符串串处理理 |
1061 | Dating (20) | 字符串串处理理 |
1073 | Scientific Notation (20) | 字符串串处理理 |
1077 | Kuchiguse (20) | 字符串串处理理 |
1082 | Read Number in Chinese (25) | 字符串串处理理 |
1107 | Social Clusters (30) | 并查集 |
1108 | Finding Average (20) | 字符串串处理理 |
1114 | Family Property (25) | 并查集 |
1118 | Birds in Forest (25) | 并查集 |
1140 | Look-and-say Sequence (20) | 字符串串处理理 |
1152 | Google Recruitment (20) | 字符串串处理理 |
2.4 树与二叉树
结构框架
树的概念:定义、存储
树的操作:三种遍历、线索二叉树
树的应用:排序二叉树(平衡二叉树)、哈弗曼树
数和森林的概念:定义、存储
数和森林的操作:与二叉树的转换、遍历
数和森林的应用:并查集
题号 | 题目 | 备注 |
---|---|---|
1004 | Counting Leaves (30) | BFS,DFS,树的层序遍历 |
1020 | Tree Traversals (25) | ⼆二叉树的遍历,后序中序转层序 |
1043 | Is It a Binary Search Tree (25) | ⼆二叉查找树BST |
1053 | Path of Equal Weight (30) | 树的遍历 |
1057 | Stack (30) | 树状数组 |
1064 | Complete Binary Search Tree (30) | ⼆二叉查找树BST |
1066 | Root of AVL Tree (25) | 平衡⼆二叉树(AVL树) |
1079 | Total Sales of Supply Chain (25) | DFS,BFS,树的遍历 |
1086 | Tree Traversals Again (25) | 树的遍历 |
1090 | Highest Price in Supply Chain (25) | 树的遍历 |
1094 | The Largest Generation (25) | BFS,DFS,树的遍历 |
1098 | Insertion or Heap Sort (25) | heap sort(堆排序) |
1099 | Build A Binary Search Tree (30) | ⼆二叉查找树BST |
1102 | Invert a Binary Tree (25) | 树的遍历 |
1106 | Lowest Price in Supply Chain (25) | DFS,BFS,树的遍历 |
1110 | Complete Binary Tree (25) | 完全⼆二叉树 |
1115 | Counting Nodes in a BST (30) | ⼆二叉树的遍历,DFS |
1119 | Pre- and Post-order Traversals (30) | 树的遍历,前序后序转中序 |
1123 | Is It a Complete AVL Tree (30) | AVL树 |
1127 | ZigZagging on a Tree (30) | 中序后序建树,层序遍历 |
1135 | Is It A Red-Black Tree (30) | 红⿊黑树 |
1138 | Postorder Traversal (25) | 树的遍历,前序中序转后序 |
1147 | Heaps (30) | 堆,树的遍历 |
1151 | LCA in a Binary Tree (30) | 树的遍历,LCA算法 |
1155 | Heap Paths (30) | 深搜回溯,堆 |
2.5 图
结构框架
图的定义
图结构存储:邻接矩阵、邻接表、邻接多重表、十字链表
图的遍历:深度优先、广度优先
图的相关应用:最小生成树(Prim、Kruskal)、最短路径(Dijkstra、Floyd)、拓扑排序(AOV网)、关键路径(AOE网)
题号 | 题目 | 备注 |
---|---|---|
1003 | Emergency (25) | Dijkstra算法 |
1013 | Battle Over Cities (25) | 图的遍历,统计连通分量量的个数,DFS |
1018 | Public Bike Management (30) | Dijkstra算法 + DFS |
1021 | Deepest Root (25) | 图的遍历,DFS,计算连通分量量的个数 |
1030 | Travel Plan (30) | Dijkstra算法 + DFS,最短路路径,边权 |
1034 | Head of a Gang (30) | 图的遍历,DFS |
1072 | Gas Station (30) | Dijkstra算法 |
1076 | Forwards on Weibo (30) | 图的遍历,BFS |
1087 | All Roads Lead to Rome (30) | Dijkstra算法 + DFS,最短路路径 |
1091 | Acute Stroke (30) | ⼴广度优先搜索BFS |
1103 | Integer Factorization (30) | 深度优先搜索DFS |
1111 | Online Map (30) | Dijkstra算法 + DFS |
1122 | Hamiltonian Cycle (25) | 图论 |
1126 | Eulerian Path (25) | 连通图 |
1130 | Infix Expression (25) | dfs深度优先搜索 |
1131 | Subway Map (30) | dfs深度优先搜索 |
1142 | Maximal Clique (25) | 图论,⽆无向完全图 |
1146 | Topological Order (25) | 拓拓扑排序 |
1150 | Travelling Salesman Problem (25) | 图论 |
2.6 查找
结构框架
概念:静态查找、动态查找
线性结构:顺序查找、折半查找、分块查找
树形结构:二叉排序树、二叉平衡树、B树、B+树
散列表(散列结构):性能分析、冲突处理
平均查找长度(效率指标):查找成功、查找失败
题号 | 题目 | 备注 |
---|---|---|
1006 | Sign In and Sign Out (25) | 查找元素 |
1011 | World Cup Betting (20) | 查找元素 |
1036 | Boys vs Girls (25) | 查找元素 |
1041 | Be Unique (20) | Hash散列列 |
1044 | Shopping in Mars (25) | ⼆二分查找 |
1048 | Find Coins (25) | Hash散列列 |
1050 | String Subtraction (20) | Hash散列列 |
1078 | Hashing (25) | ⼆二次⽅方探查法 |
1084 | Broken Keyboard (20) | Hash散列列 |
1092 | To Buy or Not to Buy (20) | Hash散列列 |
1134 | Vertex Cover (25) | hash散列列 |
1154 | Vertex Coloring (25) | set,hash |
2.7 排序
结构框架
内部排序:插入排序:直接插入排序、折半插入排序、希尔排序
交换排序:冒泡排序、快速排序
选择排序:简单选择排序、堆排序
归并排序
基数排序外部排序:
多路归并排序
题号 | 题目 | 备注 |
---|---|---|
1012 | The Best Rank (25) | 排序 |
1016 | Phone Bills (25) | 排序 |
1025 | PAT Ranking (25) | 排序 |
1026 | Table Tennis (30) | 模拟,排序 |
1028 | List Sorting (25) | 排序 |
1055 | The World’s Richest (25) | 排序 |
1062 | Talent and Virtue (25) | 排序 |
1075 | PAT Judge (25) | 排序 |
1080 | Graduate Admission (30) | 排序 |
1083 | List Grades (25) | 排序 |
1095 | Cars on Campus (30) | map的⽤用法,排序 |
1101 | Quick Sort (25) | 快速排序 |
1113 | Integer Set Partition (25) | 排序 |
1125 | Chain the Ropes (25) | 排序,贪⼼心 |
1137 | Final Grading (25) | map映射,排序 |
1141 | PAT Ranking of Institutions (25) | 排序,map STL |
1145 | Hashing – Average Search Time (25) | 哈希映射,哈希表,平⽅方探测法 |
1153 | Decode Registration Card of PAT (25) | 模拟,排序,map |
3. 数学问题篇
题号 | 题目 | 备注 |
---|---|---|
1002 | A+B for Polynomials (25) | 模拟 |
1008 | Elevator (20) | 数学问题 |
1009 | Product of Polynomials (25) | 模拟 |
1010 | Radix (25) | ⼆二分法 |
1015 | Reversible Primes (20) | 素数 |
1017 | Queueing at Bank (25) | 模拟 |
1019 | General Palindromic Number (20) | 回⽂文数 |
1023 | Have Fun with Numbers (20) | ⼤大整数运算 |
1024 | Palindromic Number (25) | ⼤大整数相加 |
1027 | Colors in Mars (20) | 进制转换 |
1031 | Hello World for U (20) | 图形打印 |
1042 | Shuffling Machine (20) | 模拟 |
1046 | Shortest Distance (20) | 模拟 |
1049 | Counting Ones (30) | 数学问题 |
1058 | A+B in Hogwarts (20) | 进制转换 |
1059 | Prime Factors (25) | 素数表的建⽴立 |
1060 | Are They Equal (25) | 科学计数法 |
1065 | A+B and C (64bit) (20) | 模拟 |
1069 | The Black Hole of Numbers (20) | 数学问题 |
1081 | Rational Sum (20) | 分数的四则运算 |
1088 | Rational Arithmetic (20) | 分数的四则运算 |
1093 | Count PAT’s (25) | 逻辑题 |
1096 | Consecutive Factors (20) | 逻辑题 |
1104 | Sum of Number Segments (20) | 数学问题 |
1105 | Spiral Matrix (25) | 模拟 |
1109 | Group Photo (25) | 逻辑题 |
1116 | Come on! Let’s C (20) | 简单逻辑题 |
1117 | Eddington Number(25) | 简单逻辑题 |
1128 | N Queens Puzzle (20) | 逻辑题 |
1132 | Cut Integer (20) | 数学问题 |
4. 水题篇
题号 | 题目 | 备注 |
---|---|---|
1136 | A Delayed Palindrome (20) | 水题 |
1139 | First Contact (30) | ⽔题 |
1143 | Lowest Common Ancestor (30) | ⽔题 |
1148 | Werewolf – Simple Version (20) | 水题 |
5. 动态规划+贪心+two points
题号 | 题目 | 备注 |
---|---|---|
1007 | Maximum Subsequence Sum(25) | 动态规划,最大连续子序列和 |
1040 | Longest Symmetric String (25) | 动态规划 |
1045 | Favorite Color Stripe (30) | 动态规划,LIS / LCS |
1068 | Find More Coins (30) | 01背包,动态规划 |
1029 | Median (25) | two pointers |
1085 | Perfect Sequence (25) | 二分,two pointers |
1089 | Insert or Merge (25) | two pointers |
1033 | To Fill or Not to Fill (25) | 贪⼼心算法 |
1037 | Magic Coupon (25) | 贪⼼心算法 |
1038 | Recover the Smallest Number (30) | 贪⼼心算法 |
1067 | Sort with Swap(0,*) (25) | 贪⼼心算法 |
1070 | Mooncake (25) | 贪⼼心算法 |