算法笔记
数据结构
后缀数组
后缀数组多实例的时候记得清height数组和c数组。
数论
除法取模
除法取模有一个(\(b\)可以不是质数)公式: \(a\div b \mod p = (a\mod (b\times p))\div b\)
- 证明:
- \(a\div b = k\times p + x, (x<p)\)
- 两边同乘\(b\)可得: \(a = k\times p \times b + x\times b\)
- 再对\(a\)取模: \(a \mod (p\times b) = x\times b\)
- 两边同除\(b\)得: \((a\mod (p\times b))\div b = x\)
数根
九余数定理
计算组合数的时候别忘了c[0][0],有时候会出错。
for (int i = 0; i<maxn; ++i) c[i][0] = c[i][i] = 1;
for (int i = 2; i<maxn; ++i)
for (int j = 1; j<i; ++j)
c[i][j] = (c[i-1][j]+c[i-1][j-1])%MOD;