注意事项&错误
- 论有效对拍和测试极限数据的重要性
- 不要局限思维
- 不要被某些神奇的C++调试错误坑
- 不要主观臆断认为一个算法会TLE。——Werkeytom_FTD
- 别老忘记清零标记!
- 用∑合并式子的时候小心特殊情况,特别是当有
的情况时! 如:
但当 时要加特判!!! - 不要懒得加%&开LL!!!!!!!!!!
- 打题前先把整个程序仔细想一下,别急着!
- 打程序的时候用心点啊!!!别老写错变量啊!!!
- 改了循环变量的时候记得仔细检查一下下面的程序。
- 当题目需要大规模连边时,考虑用中介点代替暴力连。
- 不能太依赖对拍!
- 改数据结构的时候一定要好好检查没有改的部分(merge),老在出问题!
14. >>>>记忆化的时候(特别是杜教筛),能不放hash里就别放,常数++!<<<< - 哈希数组不能删除!
- 判断两数是不是0时(线段树),不能用(!(l1*r1)),因为 ;
- 分块时要用 暴力算一些数时,可以先预处理小的,因为大的不会有很多;
- 斜率优化没有等于;
- 在做公式题时,考虑理解式子的意义;【例】
- 当想到一题的分治做法时,考虑是否可以把分治倒过来做,优化常数/代码量 ;【例】
- 优化DP**观察变化小的变量,考虑去掉冗余状态,如遇到有差的题目(如极差),考虑用差分优化**;【例】
- 判断语句并列式,注意顺序,先判断越界;
- 代价贪心考虑二分判定合法。【例】
- 树上问题与路径相关,优先考虑点分治;
- C公式记得判断
一些奇怪的吼东西
【技巧】浅谈Johnson算法
【技巧】可撤销贪心
【黑科技】用树状数组解决区间修改查询问题
【莫比乌斯反演】非正常套路
【二项式剩余】Cipolla(模意义下开根)
【容斥妙用】快速求积的和
一些容易忘记的公式
莫比乌斯反演的套路
反演:
还有:
反演:
附加1:
附加2:
欧拉函数的性质
证明在这里
和 的关系
证明在这里
杂
一
设
使
,则:
二