分层图常见方法
二进制压缩
用二进制表示一些东西的状态
形态
就是用第几层表示第几个形态(如第几天这样的)
树不重合点对数量
取下面的更优。
换元法
求一个数时可以不一定要求它,可以通过求和他有关联的式子从而间接的得到他。
数学归纳法
先证明i=0i=0i=0时,然后再假设前iii成立,再证明i+1i+1i+1转移时依然成立
等比数列的通项公式(其一)
∑i=0nki\sum_{i=0}^nk^ii=0∑nki
===
kn+1−1k−1\frac{k^{n+1}-1}{k-1}k−1kn+1−1
约数之和
A的约数个数为
∏i=1m(ci+1)\prod_{i=1}^m(c_i+1)i=1∏m(ci+1)
约数和为
∏i=mm(∑j=0m(pi)j)\prod_{i=m}^m(\sum_{j=0}^m(p_i)^j)i=m∏m(j=0∑m(pi)j)
如果有能力计算逆元,那么可以优化为
∏i=mm((pi)ci+1−1)∗(pi−1)−1\prod_{i=m}^m((p_i)^{c_i+1}-1)*(p_i-1)^{-1}i=m∏m((pi)ci+1−1)∗(pi−1)−1
最深LCA
取dfs序最近的LCA最进
线性推逆元
k=⌊p/i⌋,r=p%ik=\lfloor p/i \rfloor,r=p\%ik=⌊p/i⌋,r=p%i
有
ki+r≡0(modp)ki+r\equiv 0(mod\ p)ki+r≡0(mod p)
两边同时乘一个r−1∗i−1r^{-1}*i^{-1}r−1∗i−1
k∗r−1+i−1≡0(modp)k*r^{-1}+i^{-1}\equiv 0(mod\ p)k∗r−1+i−1≡0(mod p)
i−1≡−k∗r−1(modp)i^{-1}\equiv -k*r^{-1}(mod\ p)i−1≡−k∗r−1(mod p)
这时候r−1r^{-1}r−1已经计算出来了,就可以直接
i−1≡(r−1−k+p)%pi^{-1}\equiv (r^{-1}-k+p)\%pi−1≡(r−1−k+p)%p