PAT复习专题题目
-
图
A1003(25) 最短路径Dijkstra算法+最短路径条数+点权最大;简单 A1013(25) 图的DFS遍历求无向图连通分量,简单 A1018(30) 图最短路径+Dijkstra+DFS;较难 A1021(25) 图的dfs两遍遍历确定树的最高高度的根节点;数学证明知识;较难 A1030(30) 最短路径Dijkstra算法+最少花费+输出最短路径;简单 A1034(30) 图dfs遍历计算连通分量;复杂处理;较难 A1072(30) 图的最短路径+Dijkstra+多个第二尺度条件处理;较难 A1076(30) 图的bfs遍历层次计算;简单 A1087(30) 图最短路径+Dijkstra+DFS多标尺问题;较难 A1111(30) 图最短路径+Dijkstra+DFS,处理比较复杂;较难 A1122(25) 图哈密顿回路判断;较难 A1126(25) dfs遍历图判断是否一笔画成;无向图顶点度数 A1131(30) 图另类最短路径;很难 A1134(25) 图+vector容器;较难 A1142(25) vector容器查找+图邻接矩阵搜索判断邻接点;较难 A1150(25) 图旅行商环路;if-else判断模拟题;较难 A1154(25) vector+set解决图的边顶点颜色判断,不用建立图!;较难 -
树
A1004(30) 树静态存储+层序遍历;简单 A1020(25) 树遍历;中序+后序确定树输出层序序列;简单; A1043(25) 建立二叉搜索树+先序遍历+后序遍历+镜像二叉树;较难 A1053(30) 树静态存储+dfs+双重vector排序;较难 A1064(30) 完全二叉树+二叉搜索树+层序遍历,很巧妙;较难 A1066(25) AVL树建立;简单 A1079(25) 树层序遍历;简单 A1086(25) 二叉树遍历;先序+中序确定树,输出后序序列;简单; A1090(25) 树静态存储+深度遍历求树高;简单 A1094(25) 树静态存储+层序遍历求层号;简单 A1099(30) 二叉搜索树中序遍历填充+层序遍历输出,巧妙;简单 A1102(25) 二叉树遍历;静态树+输出层序序列与中序序列;简单 A1106(25) 树静态存储+层序遍历求层号;简单 A1110(25) 完全二叉树判断;较难 A1115(30) 二叉搜索树建立+层序遍历;较难 A1119(30) 先序序列+后序序列确定树,输出其中一种情况;很难 A1123(30) AVL树建立、层序遍历、判断完全二叉树;较难 A1127(30) 中序+后序建树;层序遍历;简单 A1135(30) 红黑树判断;二叉搜索树建立;很难 A1138(25) 中序+先序建树思想;输出后序遍历第一个结点值;较难 A1143(30) 二叉搜索树+先序确定树的核心思想 + 最近祖先;因为二叉搜索树,可直接拿结点值进行多种情况讨论;很难 A1147(30) 堆的判断;层序序列+完全二叉树输出后序序列;较难 A1151(30) 中序+先序确定树的核心思想(实质是对树结点进行排序)+最近祖先;很难 A1155(30) 堆的判断;二叉树遍历化简为dfs+vector与数组下标操作;很难 -
输入输出排序查找
A1012(25) 数组排序cmp,值得学习;较难 A1016(25) 记录匹配问题,复杂输入输出;很难 A1026(30) 复杂输入输出;太复杂了,很难很难 A1047(25) vector基础应用之较大数据排序;较难 A1055(25) 复杂输入输出排序查询;较难 A1062(25) 复杂输入输出排序;较难 A1075(25) 输入输出排序处理;简单 A1080(30) 复杂输入输出排序;较难 A1095(30) 排序之复杂输入输出;很难 A1108(20) sscanf与sprintf使用(值得再看)判断是否是合理输入数据;较难 A1109(25) 排序;模拟;较难 A1114(25) 并查集+set、vector与排序综合应用(数据处理题,比较复杂);较难 A1129(25) set重载与find、erase使用+结构体构造函数;较难 A1137(25) 结构体排序(自己写的仍然有一个点未通过,暂时看不出问题在哪);很难 A1139(30) vector容器查找较复杂版;sscanf与正负0处理;较难 A1141(25) 结构体排序+rank操作;较难 A1149(25) 查找,STL容器map与数组标记联合使用;较难 A1153(25) 输入处理(排序、分情况、使用STL工具),输出处理;较难 -
动态规划
A1007(25) dp之最长连续子序列和;较难 A1040(25) dp之最长回文子串;有空格一行字符串输入;较难 A1045(30) dp之最长不下降子序列;较难 A1068(30) dp之背包问题;很难 -
字符串
A1038(30) 字符串拼接求最小串,巧妙;很难 A1060(25) 字符串小数点处理,待看;很难 A1071(25) 字符串分割处理;较难 A1073(20) 字符串模拟,处理复杂;较难 A1082(25) 字符串处理,中文表示数读法;很复杂,很难 A1100(20) map应用之字符串处理;较难 A1130(25) dfs+中缀表达式+字符串处理(dfs不是很熟悉,还需要加强);很难 -
模拟题、数学题
A1009(25) 模拟题之多项式相乘;较难 A1014(30) 复杂模拟之银行排队问题,复杂输入输出;很难 A1015(20) 求反转数和原数是不是素数,0和1不是素数,细节题;较难 A1017(25) 复杂模拟之银行排队问题,复杂输入输出;很难 A1049(30) 数学题之统计1-n中1的个数, 巧妙;很难 A1059(25) 求一个数的质因子以及质因子个数;较难 A1088(20) 分数运算,代码精简写;很难 A1096(20) 寻找连续质因数序列;较难 A1105(25) 复杂模拟之螺旋矩阵;较难 -
二分
A1010(25) 二分+进制转换+可能溢出的大数运算,坑点巨多;很难 A1044(25) 求连续序列和、二分法算sum, 巧妙;很难 A1085(25) 二分法找数;较难 -
大数运算
A1024(25) 大数相加+回文;较难 A1136(20) 模拟题,大数相加;较难 -
twopointers
A1029(25) towpointers之序列合并;简单 -
链表
A1032(25) 链表之两个链表寻找一个公共结点;简单 A1052(25) 链表结点排序,有坑;较难 A1074(25) 链表部分反转与reverse函数使用;较难 A1097(25) 链表之去重链表;简单 A1133(25) 链表遍历+vector容器;较难 -
贪心
A1033(25) 贪心之加油问题;较难 A1067(25) 数组贪心交换数字排序;较难 -
栈与队列
A1051(25) 栈压入弹出序列;较难 A1056(25) 队列入队出队相应操作;较难 -
树状数组
A1057(30) 树状数组;很难 -
哈希
A1078(25) 素数+哈希+平方探测法;较难 A1145(25) 哈希表平方探测法、平均查找长度、求素数;较难 -
排序
A1089(25) 插入排序+归并排序,注意插排起始位置为2;较难 A1098(25) 建堆+堆排序+插入排序;很难 -
bfs、dfs遍历
A1091(30) bfs之遍历三维地图;较难 A1103(30) dfs之分解因子;很难 -
高效技巧
A1093(25) 高效技巧之统计PAT个数,巧妙;较难 A1101(25) 高效技巧之寻找序列中某个数大于左边的数并小于右边所有数的个数, 巧妙;较难 -
-并查集
A1107(30) 并查集,巧妙;很难 A1118(25) 并查集;较难 -
拓扑序列
A1146(25) 拓扑序列判断;反向设置有向边或者入度处理;较难