亡语
NOIP前
别太飘,第一道切了只是签到,第二道切了也上不了平均分,第三道切了还是半死,打飘了打崩了都及时调状态。
四个半小时,还剩一个小时的时候也能切题,只要思路清晰一点。
应该都能用已知的知识点拿(骗)分。看到奇葩考点(如 DDP)先打暴力,没准能想到另外的正解 优化。
注意 Corner Case!!!尤其是细节较多的!必要时刻记得打拍,不要太相信大样例!!!。
思路清晰再写,“清晰” 包括一些细节的处理,和对状态明确的定义。DP 至少写出转移方程。
别太死!!!不要死扣一种思路,经常“跳出来”想一想,可能已经有新的结论了!!!
关键竟在于相信自己会做了而不是相信自己会做
DP
比较弱,先打暴力,考虑暴力优化。
有一些 DP 难点不在状态设计和转移,而在转化和预处理 转化,DP,Corner Case,想清楚可以考虑直接切。
也有一些难点在找性质,推不出来再想想有没有性质 ARC,DP,智慧。
至于状态设计,先考虑一些常见的、题目中有明确阶段性的条件 进制,DP,然后考虑转移中需要知道的状态。
状态一定要明确!!!不要耽误太多时间,顶多 100 分,其他可以补。
实在不行上贪心,没准贪心就是正解 暴力 dp,正解贪心。
字符串 dp 先上 Hash,大多数时候和字符串没什么关系 优化,部分 KMP 可以考虑建树等操作分层考虑 KMP,dp。
注意 dp 本质就是递推,别忘了去找数列的递推关系 5k,智慧,递推。
注意转化后的一些更优的性质,比如连续跑步不能超过 k 可以将状态设为第 i 天不跑步的贡献,将区间状态变为单点状态
倍增
模拟赛一直在考。 对于数据范围大 DP 的直接上,不要犹豫,包括一些周期问题 周期,置换。
如果有矩乘感觉不太好写也可以想一想倍增 周期。
优化
应该会涉及到 dp 优化,注意贡献存在的时间段,没用的状态及时删掉,有用的不要加错线段树优化 dp,转化。
数据结构优化无非线段树,树状数组,平衡树,队列。难想的是前缀和、差分、状态优化,先想这些再想数据结构(也有可能脑子不够,数据结构来凑)。
线段树优dp,AT ,很点,区间贡献可以用差分改为单点贡献,在线段树上很方便,注意贡献不要重,修改范围只有一部分而不是全局修。
杂项
long long(__int128),__int128不能做下标
向上取整 \((x-1)/y+1\) (注意特判负数)
多测初始化!!!先把 init
写上,内容最后再补,忘初始化会有报错。