组合恒等式
(mn)=(n−mn)
i∑(in)=2n
i∑(mn)[2∣i]=2n−1
(mn+m+1)=i∑(nn+i)
等式右边是走到第n列所有小于m的点的方案数
而左边是走到(n+1,m)的方案数
i=m∑n(mi)=i=0∑n−m(mm+i)=(n−mm+n−m+1)=(n−mn+1)=(m+1n+1)
(mn)(km)=(kn)(m−kn−k)
先选m再选k和先选k再选m-k一样
i=0∑k(in)(k−im)=(kn+m)
考虑组合意义,左边n个选出了i个,右边m个选出了k-i个并对于i求和
所以在相当于在n+m个一下选出k个
自然数幂之和
Sn,k=∑inik S是关于n的k+1次多项式
证明:利用归纳法和二项式定理展开
拉格朗日插值
i=0∑kyii!=j∏xi−xjx−xj
如果我们有k+1个点值就能求出这个多项式插值形式
如果我们选的点值是连续的一段整数
i=0∑kyii!=j∏xi−xjx−xj
对于分子,显然是两个阶乘相乘
对于分母,显然是一个前缀的阶乘和一个后缀的阶乘相乘
模数必须大于n的质数
斯特林数,分第一类第二类
第一类实际意义是分成一些轮换
第二类是分成一些集合
Snm
第一类递推:
sn,m=sn−1,m−1+sn−1,m∗n−1插在哪一个数字后面
第二类递推
sn,m=sn−1,m−1+sn−1,m∗m插在那个集合
第二类通项:
sn,m=m!1i∑m(−1)i(im)(m−i)n
第一类用途
n下降幂=i=0∑k(−1)k−iS1k,ini
可以变成通常幂*第一类斯特林qwq
当i=k时有个nk
对n西格玛
然后对下降幂用组合数和阶乘表示
得到:()_qwq表示下降幂
Skn=k+1(n+1)(k+1)qwq−∑j=0k−1(−1)k−jSkjSjn
Ok2可以求出这个S0 Sk
你会发现对于模数没有要求,因为前面那个分式分子一定有一项可以搞掉分母qwq
伯努利数
生成函数定义
ex−1x=i=0∑infi!Bixi
伯努利多项式
i=0∑infi!βi(t)xi=ex−1xetx
βi(t)是一个多项式
带入并展开化简可得
βi(t)=k=0∑n(kn)Bn−ktk
然后我们炫酷的构造一个做差的形式,然后并带入上式
得到:
Skn=k+11i=0∑k(ik+1)(n+1)iBk+1−i
然后你妹的可以生成函数搞搞伯努利数的求法.....
构造B=∑ii!Bixi
A=∑n(n+1)!xi
B=A+11
多项式求逆即可做到O(klogk)
啊这QAQAQ
模数要是好质数才行.....
T1:
偶回文串答案显然是10^{n/2},因为一定是等的
4k+1类型数
2(x1+x3..+x2k−1)+x2k+1=2(x2+x4...x2k)
x1+x2+x3...xk=n
0<=xi<=9
直接可以容斥
枚举至少i个大于等于10都减去10
y1+y2....yk=n−10i
yi=xi−10的要大于等于0
所以插板法
i=0∑k(ik)(−1)i(k−1n−10i+k−1)
所以这个题也能变成这个问题
x2+x4...x2k−x1−x3...−x2k−1=9k+x2k+1/2
钦定y_i=9-x_i
x2+x4...x2k+y1+y3...+y2k−1=9k+x2k+1/2
会发现0<=x,y<=9
枚举x_{2k+1}容斥
如果n是4k+3形我们可以枚举开头结尾三个数再容斥
但是n是3要特判一下(全枚举了)
A=(i,j)∣ai<aj
B=(i,j)∣bi<bj
C=(i,j)∣ci<cj
求A交B交C
容斥一下就好
A交B+B交C+C交A+A+B+C+U=|A交B交C|+|U除去(A并B并C)|
前面A交B可以二维数点O(nlogn)
后面两个式子发现值是相等的,所以答案就是前面的值除2就好了...
O(nlogn)
容斥原理,普及了
minmax容斥
maxS=T∈S∑(−1)T+1minT
T2ARC096E
容斥,不妨设为1~i
子集族分为两类,第一类含有1~i中至少一个,第二类是不含有
第二类:22n−i,每个子集选或不选而已
枚举第一类的个数相当于有i个数字要分入k个集合
但是这些集合可能有大于i的部分
大于i的可有可无∗(2n−i)k
i个数字可能不放完?用一个垃圾堆,没有出现的向里面丢
可能没有一个出现的数字,也不知道哪个是垃圾堆
额外多一个0丢进去
满足垃圾堆非空,有0的就是垃圾堆,
答案是Sn+1,k+1
于是我们就做完了
Ans=i=0∑n(−1)i(in)F(i)
F(i)=k=0∑Si+1,k+12k(n−i)
∗4n−i
T3ARC093F
先画出图,我们发现对于一个排列P,我们遇到的是
p2,min(p3,p4),min(p5...p8)
然后设G1=p2,G2=min(p3,p4)...
Gk=2k−1..2k
所以这些G的最小值要没有A,都 不 在
考虑容斥
枚举一个子集S∈G1,G2,G3,G4....
Smin都在A中
F(S)为方案
Ans=i=0∑(−1)∣S∣F(S)
对A,DP
从大到小考虑每个元素
问题是怎么分配一堆数字给gk然后min=ai
剩下的数字>ai选出这么多
怎么知道已经选走了那些数字?
你会发现S中最小值都比ai大!,所以每个元素都大,整个集合都在这一段里面
剩下2n−ai−∑j∈S2j=R
方案数(2k−1R)
->fi−1,S+k
或fi−1,S
剩下有若干数字,随意分配
F(S)=f_{0,S}*R!
做完了
小z的礼物
E[Maxx∈Stx]
=T∈S∑(−1)∣T∣+1E[minT]
每k个点对包含T中至少一个
E[min(T)]=k/(n(m−1)+m(n−1))
四相邻的要减1啊....
只有横着两个竖着两个要-1
所以可以DP
dpi,j,S表示我们考虑了i行j列S是每一行考虑的最后一个点在不在其中
1.不在T直接转移
唉?T在哪啊?
把整个k塞入状态
2.如果属于T
考虑四个方向有没有选好的T
如果有说明要算重,减去即可
k要变成k'
直接DP,k一维是O(nm)的
O((nm)22n)
dp完,我们是对于一个T做的
统计每一个k对应多少个T
然后就可以算下贡献?
ans=∑T∈S(−1)∣T∣+1E[minT]
k个点对包含了T当中至少一个点
再计入一个0/1表示T大小奇偶性?
斯特林反演
nm组合意义是m个球放进n个盒子里
我们可以枚举i表示有多少个非空盒子,然后有标号∑i=1n(in)Sk,ii!
有了下降幂就有上升幂
x{n升}=\sum_k[n,k]xk
利用归纳法以及斯特林递推公式即可证明
f_n=\sum_{k=0}^nS_{n,k}g(k)$
->
g(n)=k=0∑n(−1)n−k[n,k]f(k)
引理,反转公式
反转公式引理
xn.=(−1)n(−x)n‘
xn‘=(−1)n(−x)n.
展开即可
反转公式
k=n∑m(−1)n−k[n,k]k,m=[m=n]
k=n∑m(−1)n−kn,k[k,m]=[m=n]
证明:利用之前某个引理,然后斯特林展开,然后提出多项式对应化简即可
利用第一个反转公式直接带入fn=∑jn[j==n]fj即可从右向左证明斯特林反演!
T1
先整出任意两行不同方案
容斥!
第一行为cm,第二行为cm−1....
c^m^{m.}即m次下降幂
两列可能一样
fm为任意两行两列不同的答案
怎么用f表示g
枚举有多少个本质不同的列
gm=i=1∑mfiSm,i
然后斯特林反演
fm=k=0∑m(−1)m−k[m,k]g(m)
O(n2)
有标号的放入无标号集合就变得有标号了qwq
如果两个都是有标号的我们就会导致算重的问题QAQ
T2
设cu表示点u到root的时间
求E[cuk]
=E[∑iki!Sk,i(icu)]
=∑i!Sk,iE[(icu)]
后面怎么求?
第一种情况留在原地,第二种走出去
=pu∗E((icu+1))+(1−pu)/du∗v∈d(u)∑sE((icv+1))
利用组合数递推
=pu∗E((icu)+(i−1cu))+(1−pu)/du∗v∈d(u)∑sE((icv)+(icv))
其中i-1那一项由期望线性型已经可以分离并已知了
fu=pu(au+fu)+1−pu/du∑(fv+av)
du/(1−pu)fu=dupu/(1−pu)(au+fu)+∑(fv+av)
dufu=dupu/(1−pu)(au)+∑(fv+av)
硬猜fu可以表示成ffau+t
假设u的所有孩子都有这个结论成立,那么u也有这个结论成立
dufu=dupu/(1−pu)(au)+∑(fu+tu+av)+ffa+afa
fu=dupu/(1−pu)(au)+∑(+tu+av)+ffa+afa
所以我们先从下往上推一遍得出所有的t
又因为f1=0
所以我们就能O(n)求出一个i的答案
然后我们做k遍,O(nk)
斯特林数需要用NTT优化
完蛋了效率好低啊
T是指对于所有的无向图,枚举了的连通块个数
∑Tk=i=0∑kSk,ii!T∑(iT)
(iT)
dpkn表示n个点恰好成为k个连通块的方案数
T∑(iT)=j=1∑dpij2(2n−j)
然后把组合数拆开我们就能的到一个卷积形式
就可以卷卷卷啦!
但是dpij怎么求?j个点凑齐i个连通块
dpkn=i∑n(i−1n−1)dp1idpk−1n−i
这个东西拆开组合数还是能卷积啊?
但是要分治fft?
只要能有dp1!!!
n个点连通图个数
容斥,总的减去不合法的
2(in)−j∑n−1fj2(2n−j)
左右中分别设生成函数为F,G,H
F=G*H
G=F/H多项式求逆qwq
总复杂度O(nklogn+Tk)
Burnside引理
放弃!
杂题选讲
Si,jj!=k=0∑i(−1)k(kj)(j−k)i
=k=0∑n2jj!(j−k)!(−1)(j−k)i=0∑nk!ki
Ai=i!(−1)i
Bi=i!∑i=0nik
Ai和Bi卷一下
T2
假如第i个括号选了xi
x∑i=1∏nE[bxi==i]
x∑E[i=1∏n[bxI==i]]
有重复元素就是0
否则就是固定了l个位置,他们一定要是给定的值,那个中括号连乘起来才能有值,剩下的就是随便填
概率就是
1/kL
有nL.种方案期望就是
ans=nL./kL
F!=1
相当于我们重复了F次
x∑i=1∏Lj=1∏F[bxi,j==i]
0,1变量相当于概率了
假如说有T个不同的元素
1/kT
nT.
然后变成有一个集合我们有R个元素要放入F个东西,相当于F个东西每一组都是非空的
方案数为SF,R
然后单独算出来每一个盒子里面放R个元素的方案数
然后T个元素分入L个盒子的方案数就是这个东西背包卷积起来QAQ
实际上我们T只有2333的范围因为nT.T>2333膜出来是0