PAT集训笔记

PAT集训

考纲

1· 基本的C/C++的代码设计能力,以及相关开发环境 VC++ 6.0 VS2008 的基本调试技巧;
2· 理解并掌握最基本的数据存储结构,即:数组、链表;
3· 理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等;
4· 能够分析算法的时间复杂度、空间复杂度和算法稳定性;
5· 具备问题抽象和建模的初步能力,并能够用所学方法解决实际问题。

专题

1, 简单题1072, 1076, 1077, 水题1071, 简单模拟1001, 1032
2, 简单模拟1046, 1026, 1012, 查找1028, 1041, 进制转换, 1037, 1057, 图形打印1027, 1036,
3, 素数1007, 1013, 模拟题1051, 1050, 1053, 进制转换1022, 逻辑题1059, 1060, 1061
4, 模拟题1018, 1010, 字符串处理1006, 1009, 1048, 1052, 1054, 1067
5, 逻辑题1063, 1065, 1066, Hash散列 表1005, 1029, 1038, 1039, 1043
6, 数学问题1019, 1049, 1056, 四则运算1034, 分数化简1062, 大整数运算1017
7, two pointers, 1030, 排序1015, 1045, 1080
递归
8, 高效技巧, STL map,1044, 1069, 1083 ; set,1064, 1065,
9, 链表1025, 1075

时间控制

乙级考试一般出5题,题目描述语言为中文。
15、20、20、20、25。
10 + 30 + 30 + 30 + 45 = 60 + 40 + 20 + 25 = 2:25

首先有十分钟拿下乙级15分题的本事。
然后要能在半小时内完成乙级20分题1道。
接下来训练自己45分钟完成乙级25分题。
这时你有了2.5小时满乙级的本事!

下面改做甲级英文题。

要有用十分钟读完4题的本事。
20分钟写完20分题并至少过样例。
1小时内写完2道25分题并至少过样例。
1小时写完最难题并至少过样例。
此时你应该有70分左右了,
最后半小时拚命过90吧!

步骤

分析

什么题型? 画图, 伪代码, 手写(面试考试相关), 理清楚思路, 哪几个坑点? 别就是干

实现

就是干,把想好的写下来, 脑子里再模拟一遍。
写完之后最好再检查下(面试相关),
编译过样例.

发现case通不过, 先分析清楚问题, 别一整乱改

解答(分析)

可以分析出自己解答的复杂度, 去网上找比你快的。
如果刚开始不会分析复杂度, 去网上找思路比你清楚的(代码简练的), 分析的到位的, 要有甄别能力, 别烂代码看半天.

分析为什么好, 找到跟你思路上的区别, 以及他本身的几个优化点, 这样可以去尝试理解.

总结

整理成笔记, 把开始的思路, 两个分析, 重新过遍, 代码帖上, 尽量让别人看懂.
这部对锤炼思路来说蛮重要的, 花点时间, 但效果好。

pat-a

考乙级之前可以刷的:

举个例子,甲级练习题里的基础数据结构题。
题目有1004,1020,1021,1028,1032,1107等。
涉及到的有队列,栈,链表,二叉树,并查集。
如果你发现自己并不熟悉这些,那么应该花几天的时间学习c++STL相关操作,二叉树前中后遍历。
由于PAT考试不能够携带纸质资料,我假设你会针对结构体使用algorithm头文件的排序,对STL的向量,栈,队列,map,set相关操作和迭代器足够熟悉,否则强烈建议你花上一些时间学习。
然后可以试着做一些模拟题目。
模拟题范围较广,可以锻炼思维,增强码代码能力。
题目有但不限于这些:1005,1006,1008,1009,1011,1015,1024,1035,1042,1043,1048,1065。