PAT 甲级刷题记录
前言
最近打算考研,目标浙大,所以开始有计划地刷起了PAT甲级。
秉持着less is more的思路,我的规划是:尽可能每道都写一写刷题笔记,做题流程如下:
- 尽可能自己实现一遍代码,跑通示例
- 无论是否AC,看一看大神解法
- 看完大神解法后,无提示情况下重现一遍,找到遗漏的关键点
- 做笔记,当时理解上的困难点尽可能说明
刷题的类型(也可以参考本文的刷题顺序),和大神解法(建议搜索柳神博客,关键词“柳婼+题号”)如下:
最后,理想是美好的,但实际可能会遇到各种各样的问题。大家加油!
刷题笔记
part0 关于常见套路和埋坑的总结
todo0:总结刷题过程中遇到的各式各样的问题,比如各类头文件的使用,debug的经验,一些细节导致的难以调试的问题
todo1:总结排序题的常见套路和写法
todo2:回顾并总结字符串处理题的常见类型、套路和写法
part1 模拟题(重点,而且模拟题并不简单hhh)
这类题几乎不需要数据结构、算法基础,主要通过简单的逻辑流程和判断实现,以字符串的处理为主
1.0 字符串处理
(待总结)1001 A+B Format 【字符串处理】
(待总结)1005 Spell It Right【字符串处理】
1073 Scientific Notation 【字符串处理】
1082 Read Number in Chinese 【字符串处理】
1.1 简单模拟
(待总结)1002 A+B for Polynomials 【简单模拟】
(待总结)1009 Product of Polynomials 【简单模拟】
1.2 进制转换
(待总结)1019 General Palindromic Number 【进制转换】
1.3 查找元素
(待总结)1006 Sign In and Sign Out 【查找元素】
(待总结)1011 World Cup Betting 【查找元素】
1.5 其它
part2 常用技巧与算法
排序题有很鲜明的套路,重在理解排序的规则,通常写起来不算太复杂 贪心题没有固定套路,重在理解思想,其中[ 1033 To Fill or Not to Fill] 最为经典,建议对其研究透彻 (注,由于贪心题不在考纲内,现移到part5)
2.0 二分
1085 Perfect Sequence 【二分/双指针】
2.1 排序
2.2 散列
1092 To Buy or Not to Buy 【散列】
2.3 双指针
1085 Perfect Sequence 【二分/双指针】
1089 Insert or Merge 【双指针/模拟排序】
2.4 贪心(已移出至part5)
part3 数学
3.0 简单数学
(待总结)1008 Elevator 【简单数学】
1069 The Black Hole of Numbers 【简单数学】
1104 Sum of Number Segments 【简单数学】
3.1 素数
3.2 大整数运算
1023 Have Fun with Numbers【大整数运算】
1024 Palindromic Number 【大整数运算】
3.3 质因子分解(掌握下辗转相除法)
1096 Consecutive Factors 【质因子分解】
3.4 分数的四则运算
1088 Rational Arithmetic 【分数的四则运算】
3.5 活用递推
part4 常见数据结构(重点)
4.0 STL使用
1060 Are They Equal 【string的常见用法】
1063 Set Similarity 【set的常见用法】
1039 Course List for Student 【vector的常见用法】
1047 Student List for Course 【vector的常见用法】
1054 The Dominant Color 【map的常见用法】
(待总结)1022 Digital Library 【map的常见做法】
1071 Speech Patterns 【map的常见用法】
4.1 链表(套路总结在 1097 中)
1052 Linked List Sorting 【链表处理】
1074 Reversing Linked List 【链表处理】
1097 Deduplication on a Linked List 【链表处理】
4.2 BFS和DFS
1103 Integer Factorization 【DFS】
4.3 树
1053 Path of Equal Weight 【树的遍历】
1079 Total Sales of Supply Chain 【树的遍历】
1090 Highest Price in Supply Chain 【树的遍历】
1094 The Largest Generation 【树的遍历】
1106 Lowest Price in Supply Chain【树的遍历】
1043 Is It a Binary Search Tree 【二叉查找树】
1064 Complete Binary Search Tree 【二叉查找树】
1099 Build A Binary Search Tree 【二叉查找树】
1086 Tree Traversals Again 【二叉树的遍历】
1102 Invert a Binary Tree 【二叉树的遍历】
1098 Insertion or Heap Sort 【堆】
4.4 图
1013 Battle Over Cities 【图的遍历】
1018 Public Bike Management 【最短路径】
1087 All Roads Lead to Rome 【最短路径】
part5 “超纲题”(常见于pat顶级)
1033 To Fill or Not to Fill 【贪心】
1038 Recover the Smallest Number 【贪心】
1067 Sort with Swap(0, i) 【贪心】
1040 Longest Symmetric String 【最长子回文串/字符串hash】
(暂不做)1007 Maximum Subsequence Sum 【最大连续子序列和】
(暂不做)1045 Favorite Color Stripe 【最长不下降子序列 LIS/最长公共子序列 LCS】
(暂不做)1057 Stack 【分块思想/树状数组】
(暂不做)1068 Find More Coins 【背包问题】
(暂不做)1014 Waiting in Line 【快乐模拟】
(暂不做)1017 Queueing at Bank 【快乐模拟】
(暂不做)1026 Table Tennis 【快乐模拟】
(暂不做)1105 Spiral Matrix 【快乐模拟】