甲级(Advanced Level):在达到乙级要求的基础上,还要求: 1· 具有充分的英文阅读理解能力; 2· 理解并掌握基础数据结构,包括:线性表、树、图; 3· 理解并熟练编程实现经典高级算法,包括哈希映射、并查集、最短路径、拓扑排序、关键路径、贪心、深度优先搜索、广度优先搜索、回溯剪枝等; ————————————————
背模板。其实PAT考来考去也就那么几种类型的题,常用的算法和语法模板背一下,最重要的包括
自定义 STL中的sort规则,知道如何给结构体数组排序
vector, stack, queue, map等库的常规用法
并查集及路径压缩
Dijkstra最短路径算法(常规版+DFS版)
Hash表的查找模拟及hash冲突解决模拟
DFS,BFS
二叉树的遍历(前中后序+层序)
二叉树的重建(如根据前序+中序)
AVL树的判断(树的构造能写更好,不过感觉略难,考的几率不大)
数学类(素数判断、最大公约数、质因子分解等)
————————————————
整理题型。PAT甲级总共4道题,刷多了以后会发现题型设置上会呈现出一些规律。其中最简单的两道题就是对应乙级最难的两道题的英文版。我自己尝试总结了一下题型(自己摸索的,不一定准确,只是大概如此)
第一题(20分)常考数学类、逻辑类题目。如涉及到素数、最大公约数,或者自己定义一个规则,让你求或者判断这种特定的数,编程难度低(会写for循环就能做),需要认真读懂题目。建议过样例用时不超过25分钟。
第二题(25分)常考简单数据结构及应用。如栈、链表、哈希、结构体等,常见的是排序题,给出一堆数据,按要求排序(链表题本质也是结构体的排序题)。建议过样例用时不超过30分钟。
第三题(25分)常考树或图。如二叉树的重建、并查集等套路题的变形,或者是给出一些经典树、图,让你判断(红黑树、拓扑排序、欧拉图等),其实比较简单,别被吓到,根据定义来就行。建议过样例用时不超过30分钟。
第四题(30分)常考树或图。如最短路径、最近公共祖先、堆的判断等。这类题目往往也不难,但一般代码量较大,很可能需要DFS及剪枝。建议过样例用时不超过1小时。
我们看真题库里的最后三组题(1144~1155)来验证一下,发现规律大致如此
20分题:1144简单数学逻辑;1148狼人杀逻辑题;1152素数题
25分题:1145Hash冲突题;1149map题;1153排序题;
25分题:1146拓扑排序简单判断;1150旅行商问题(简单判断);1154图着色问题
30分题:1147堆的判断;1151最近公共祖先;1155堆的判断+DFS
————————————————