集训总结的小tricks
- 看到不是人做的限制、方格图某些奇怪的限制、优先考虑网络流。
- 网络流经典套路:拆点(对点的流量有限制等)、黑白染色等。( 3447 摘取作物、3364 Snake )
- 看到 \([\gcd=1]\) 想莫反,看到 \(\gcd\) 的值的贡献,想到用欧拉反演。( 4496 互补约数 )
- 数颜色问题,优先莫队。树上莫队就是拆成序列欧拉序上的贡献,注意lca的特判 ( 3360 苹果树 )
- 实在想不出的题可以考虑分块打表 ( 3362 数数 )
- 方格图计数,\(n,m\) 一个很大一个很小的时候考虑矩阵快速幂/倍增优化dp。( 3373 Line )
- 没有思路的题,考虑二分答案判断可行性。(太多了不举例子了)
- 大力猜结论,勇敢打暴力 ( 3293 阶乘字符串 )
- 学习通用记号 ( 6108 骗分过样例 )
- 不要被麻烦的限制吓到,考虑化掉一些限制或者发现某些限制是吓唬人的 (3312 摩托车交易)
- 无根树同构问题,找到重心,单重心时以此为根,双重心时新建点,连接这两个点并且删除原重心之间对应连边,以此为根,从而转化成有根树同构问题。 ( 3296 刺客信条 )
- 期望问题,可以勇敢推一下式子。 ( 6640 lowbit )
- Burnside引理:
\[\text{本质不同方案数}=\frac{\sum\text{每个置换的不动点数}}{\text{本质不同置换数}}
\]
( 3298 项链 )
14. 递归的时候,考虑下层递归会不会影响此层的数组里面存的东西。
15. FFT/NTT 的时候要注意,如果求 \(m\) 次多项式的 \(k\) 次幂,要把空间开到 \(mk\)。
16.