CSP-S复习梳理
CSP-S复习梳理
知识点复习
对于大型数据结构一天复习1~2个,周一树状数组线段树,周二ST表与单调栈与单调队列,周三分块,周四字典树与可持久化数据结构,周五堆与二叉搜索树与平衡树。
对于算法,一天复习1~2类,周一图论,周二数论,周三搜索与倍增,周四动态规划与贪心,周五二分三分模拟退火。
线段树
感觉有可能考(主要是noip联考一天至少1道线段树),但我好像不是很会的样子,要注重复习一下带懒标记的线段树,以及什么问题可以转化为线段树问题,重中之重可能是扫描线。线段树可以维护的平衡树都可以。
树状数组
自我感觉不太可能考,一般应用于求数点问题或快速统计问题,树状数组能解决的线段树都可以,但树状数组常数很小约等于没有。
ST表
感觉思路比较玄学,不是太能理解,但是考的概率还是有的,不带修的用ST表的时间复杂度是比其他数据结构都优秀的。
单调数据结构
一般思路都比较巧妙,或者用来优化其他算法,但好像基本上一出就有很多暴力的部分分?
分块
如果考场上想不到其他数据结构来写,可以考虑分块,而且基本上是不会卡分块的,好写又好调,思路直观,虽然时间复杂度是根号级别,但常数小,实际跑起来与线段树差不多。
字典树与可持久化数据结构
感觉考的概率很小,可以考虑使用pbds
库,虽然常数大了点,但基本都能实现。
堆与二叉搜索树与平衡树
可能考的概率不是很高,但是个人感觉平衡树应该算是比较简单的吧。
图论
每年基本都会考,而且基本都是压轴题,图论感觉一考就很难。
数论
基本没考过,顶多考个矩阵相关的优化,概率极小。
搜索与倍增
搜索——骗分神器,有时候有奇效,善用可行性剪枝、最优性剪枝与记忆化搜索。倍增——基本用来优化各种神秘的算法,单独考的不多。
动态规划与贪心
最优性问题两兄弟,先想贪心,一般感觉是对的然后糊大样例再对拍就行了,DP往往复杂度比较高,但代码实现简单。
二分三分模拟退火
可以大胆尝试以各种数据作为自变量来构造函数,看是一次/单峰/多峰来进行判定,不会就打退火。