zz瞬间
- 多重区间问题考虑分割点
- 易插入难删除的问题倒序解决
- 多个绝对值相加考虑拆开
- DP状态有后效性考虑 对状态加限制(加维)
- 如果最小值超过了 long long 请把初始值开到 1e18
- 数位dp clac函数记得清空cnt(updata:多测记得清空。。。)
- 强转是 (int)(l * 100) 而不是 (int)l * 100
- 多测输出换行
- 看空间
- 注意常数因子对程序运行效率的影响
某些复杂度不对的算法可以卡常
- function(a,a--) 属于 UB 行为,避免一个函数内传入的变量带有自增自减
- 博弈论题基本策略打 SG 函数表找规律,利用博弈论基本定理和 SG 函数的子局面合并(xor)
- dij 重载小于号成大于号
- 2-sat 按照拓扑序的反序赋值的原因:如果按正序赋值会出现 !i -> i 的情况。
- 多个限制不好同时满足可以考虑类似cdq的思路,先强制满足一个再去满足另一个。
- 无向图的构造问题可以考虑 DFS树,因为“无向图上非树边都是返祖边”。
- 前后缀最值可以用 k 维 BIT,好想又好写。
- 涉及整除可以往类欧/整除分块想,利用合法取值 \(\sqrt{n}\) 的性质。
- 一定要注意输出格式,不要连大众分都拿不到!!
- 遇见值域单调性的时候要多想,是全部单调还是分段单调或者是凸包。
- 仙人掌灵活赋点权
- 整体二分可以在最后加上一个询问表示无解
- 概期DP设计状态的时候大多是到停时的概率/期望
- 读题!看清楚题目里明示的性质,比如基环树啥的。
- 圆方树也是解决基环树的好方法。
- 构造题可以先考虑怎么构造出上下界。
- 一个看起来简单的题想很长时间想不出来可以尝试回退到基本结论,大概率在某一步有一种非常简单的做法。
- 多项式做前缀和相当于乘 \(\frac{1}{1-x}\),次数会+1。
- 区间复杂询问考虑分治/扫描线
- 涉及区间最值的区间询问题考虑笛卡尔树/单调栈+扫描线
posted @
2023-03-05 20:46
Kun_9
阅读(
46)
评论()
编辑
收藏
举报