组合数模质数考虑lucas
不会做的题考虑分块,分治。。
有些
n√logn
涉及修改和查询的题可以多分一个块平衡复杂度。。
序列上区间操作可以考虑差分。
1、xk=∑ki=1Cix∗S(k,i)∗i!
2、S(n,m)=1m!∑mi=0(−1)i∗Cim∗(m−i)n
第二类斯特林数的意义是n个有区别球放进m个无区别盒子,不允许有空盒的方案数。明显
nm
表示n个有区别球放进m个有区别盒子,允许空盒方案数。上面两条式子就是这两种互推,第一条枚举哪些不是空盒,第二条枚举哪些是空盒然后容斥。
第一条可以用于维护
xk
,与二项式定理类似。见bzoj2159。
第二条可以用于展开斯特林数大力推式子。见bzoj4555。
ϕ(a∗b)=ϕ(a)∗ϕ(b)∗gϕ(g)
g=gcd(a,b)
树哈希时加入子树大小避免冲突,时间允许时把哈希值和子树大小做成pair
循环矩阵A,B
A+B为循环矩阵,A*B为循环矩阵
AB=BA
数轴上有n条线段,每条线段有个值,被多条线段覆盖的地方值取max(或min什么的)。
可以用O(n)条线段表示出每个点的值。设线段的左右端点为关键点,取出的值不同的线段一定是以关键点为端点的,并且互不相交。
见bzoj4223、bzoj3089
斐波那契数列性质:
F(k)∗F(i)+F(k−1)∗F(i−1)=F(i+k−1)
归纳法可证
((())
左边x个(,右边y个),选任意个括号,使左括号数量和右括号相等方案=
Cxx+y
考虑选出的x个位置,如果是左括号就不要,右括号就要。那么一种选了a个左边位置的方案对应一种x-a个左右括号的方案。选出左括号比右括号多p个类似。
期望的计算转换计算贡献。注意多次转换。
bzoj3451
gym100240 J
注意特殊的形式,如将
x2
看成数对个数,
x3
看成三元组。
gym100240 J
bzoj1566
计算一个无向图色数(最少多少颜色让相邻不同):
状压。枚举独立集涂同一种颜色。
特殊图网络流复杂度:
与s和t相连的边容量为1,复杂度
O(mm−−√)
CF786E
三进制ntt
有一个序列,询问区间有多少(i,j),满足min(ai,aj)>ak(i< k< j)。
考虑用ai,aj中较小的一个去找另一个。假设是ai向右找的情况,第一个合法的aj是右边第一次大于等于ai的aj。注意当j继续变大时,由于当前的aj已经大于等于ai了,所以不会再有合法位置。向左找也类似。所以共只有2n个合法位置。预处理出每个合法(i,j),问题就容易解决了。
bzoj3956
1,2,4, pk , 2∗pk 有原根