卡常专题
卡常总妙招:常数大的算法分段处理,$n$ 较小时暴力
网络流卡常技巧
- Dinic 比 Edmonds-Karp 快很多,无论什么时候,初始图都要跑 Dinic
- Dinic 玩二分图是 $O(m\sqrt{n})$ 的,不要怀疑
- 即使是单条边增广,也要用 bfs 的 Edmonds-Karp 而不是 dfs 的 Ford-Fulkerson
- 不要大量复制数组,想办法撤销:head[u]=nxt[head[u]],用一个栈记录下来所有变化过的流,然后撤回去
- 网络流跑的时间与值域有很大关系,可以考虑让 inf 尽量小,时间上快很多
NTT 卡常技巧
- 用 int 而不是 long long
- unsigned long long 减少取模
- 当 $n+m \le 100$ 时直接暴力卷积,速度加快极其明显!
- 仔细观察卷积时是否有重复做 NTT 的情况,把封装好的卷积拆开可能会次数减少,获得奇效!
图论卡常技巧
- 用邻接表会比用 vector 快不少(不过实在无处可卡时再用吧)