我的错题本
受zhangtingxi的启发,写了这个错题本,来记录自己的易错点。
一:比赛相关
- 检查文件名,文件流。(2021CSP-S)
- 尽量使用万能头。(2020CSP-S)
- 最后一定要把所有样例过一遍,包括小样例(2022CSP-S)
- 暴力一定要复制一份,之后可能需要。
- 不要花太多时间在一道题上!
二:数组空间
- 线段树开4倍空间
- 注意如果是动态开点线段树是开 倍空间,可持久化数据结构log倍原来空间
- 双向边开两倍,注意图论题目 上限是否一样。
- 网络流千万要开够,不要数错。如果够直接开20倍。(ABC263)
- 离散化,破环成链要开够
- SAM,O(1)lca要开两倍空间
三:卡时间常数
- 主席树最好只跑一次(NOI Online2022)
- 如果可以通过离散化优化勉强卡到上界的复杂度那就离散化。(USACO2007NOV)
- hash表手写,尽量使用挂链法。(20221027模拟赛)
- 数组的枚举顺序要和开的顺序尽量一样。如
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[j][i]++;
这样常数会巨大!(20221015模拟赛)
5. 线段树如果常数比较大要尝试用离散化避免动态开点和区间操作,如果还不够上树状数组硬弄或者用别的方法代替。(20221018模拟赛)
6. ST表访问内存不连续,O(1) 的常数也不小,可能跑 如果是long long 会被卡。
7. 广搜可以代替深搜,会快很多
四:卡空间常数
- 注意vector有两倍常数
- 如果用 map 或者 set 卡到了接近空间上界,要注意这两个东西空间常数巨大,尝试优化(20221010模拟赛)
- dp时滚动数组
- 前缀和时不能用辅助数组就在原数组上弄(20220819模拟赛)
- bool数组用bitset!
- 快速的排序中只有堆排不用额外空间
- 基排有时候也能缩空间
- 分块常数大尝试莫队
- 深搜一般比广搜少几个数组,但广搜可以滚动数组优化。
- 可以尝试用分块预处理的方式来弄。
五:时间复杂度
- 首先不要相信 ,要知道出题人不会放过你(20221105模拟赛)
- 但如果有 算法,要花时间证复杂度或者找到更好的方法,实在不行的话可以跟暴力一起提交上去。有时会有惊喜。
- gcd的 时间复杂度是有时不行
六:贪心正确性
- 尽量拍
- 能证的花店时间证,证不出来的暴力打上(20221115模拟赛)
- 如果有别的做法的就用别的做法。
- 如果贪心是错的,尝试反悔
- 如果没有更好的方法,有一些高概率正确的贪心,还是打上去吧。还可以尝试多次贪心取最优等方法来骗分(20221116模拟赛)
- 贪心时如果出现贪心估出来的权值相等,一定要去注意数量相等时贪心的结论是否成立。
七:二分
- 二分前尽量判断边界情况(20220312模拟赛)
- 注意 (l+r)/2 时l+r是否爆int/long long(20221018模拟赛)
八:随机化
- Xoring hashing 一定要把随机范围放到 long long 中(牛客2022第4场)
- 什么时候都不要忘了随机化。(牛客2022第5场)
- 使用 mt19937,rand()的值域在不同系统中不一样,很烦。(20221022模拟赛)
- 随机化可以拍一下看正确率,如果拍都错了还是放暴力吧。
- 对于题目限制住了随机的,很有可能特意去卡(例如把你的模数固定了)
- 随机化的时间限制不要设太满,不要高估CCF评测机(NOI Online2022)
九:动态规划
- 对于dp状态数特别多的,考虑去除用不到的状态(20221027模拟赛)或者把一些答案一定相同的缩起来(20221019模拟赛)把一些状态改成枚举的内容
- 对于转移,那些套路弄上去
- 如果设计的状态不好压,尝试在别的地方(例如值域,另一个dp数组)进行dp
- 一些暴力的dp起码把方程,定义写出来,有时候会有惊喜。
十:数据结构
- 有关连续区间的都可以尝试往线段树上去套,因为有可能会出来线段树。
- 线段树平衡树的tag一定要求合并(ABC265G)
- 调试还是要自己把树建出来一个个值看。
- 调试的时候,可以先将数据结构用暴力代替,检查其他部分正确性后再写数据结构。
十一:图论
- 树上多次询问考虑树剖,倍增,点分治、点分树,离线+启发式合并
- 图上多次询问考虑图剖,离线+(各种东西),最小生成树上处理
- 千万别被前两条限制住
- 最优化问题千万试一下网络流,因为网络流太玄学了
- 距离问题点分治/点分树
十二:数学
- 矩阵树定理记得去除一行一列
- 见到卷积要想到生成函数
十三:读题
- 小样例记得手模
- 英文题面关注样例解释
- 有些恶心出题人在一个地方说好了数据随机,结果有一档部分分是满足某个要求(如本来说了 数组随机,结果部分分里有一档 )
- 无论题目多简单,都要看一眼样例解释,保证没读错题。
- 不要怕长的题面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!