q1uple 太强了qaq
范德蒙德卷积
\[\sum_{i=0}^k\binom{n}{i}\binom{m}{k-i}=\binom{n+m}{k}
\]
例题
先做 CF1264D1
CF1264D1
考虑算贡献,对于一个位置,贡献有,\(l,r,x,y\) 表示左边左括号,右边右括号,左边问号,右边问号。
有式子:
\[\sum_{i=0}^x (l+i)\binom{x}{i}\binom{y}{l+i-r}
\]
\(O(n^2)\) 可以通过 D1
考虑继续优化,使用范德蒙德卷积
\[\sum_{i = 0}^x (l+i)\binom{x}{i}\binom{y}{l+i-r}\\
=\sum_{i=0}^xl\binom{x}{i}\binom{y}{l+i-r}+\sum_{i=0}^xi\binom{x}{i}\binom{y}{l+i-r}\\
=l\sum_{i=0}^x\binom{x}{i}\binom{y}{y-l-i+r}+x\sum_{i=0}^x\binom{x-1}{i-1}\binom{y}{y-l-i+r}\\
=l\binom{x+y}{y-l+r}+x\binom{x+y-1}{y-l+r-1}
\]
然后就做完了。
二项式反演
\(f(k)\) 是恰好 \(k\) 个的情况树,\(g(k)\) 是至少 \(k\) 个的方案数。
那么有:
\[g(k)=\sum_{i=k}^n\binom{i}{k} f(i)\Longleftrightarrow f(k)=\sum_{i=k}^n(-1)^{i-k}\binom{i}{k}g(i)
\]
例题
看到恰好,就想到钦定。
然后直接dp,\(f_{i,j}\) 表示当前是第 \(i\) 个,钦定了 \(j\) 个位置 \(a_i>b_i\),式子显然:
\[f_{i,j}=f_{i-1,j}+f_{i-1,j-1}*(\text{比 $i$ 位置小的数的个数})
\]
然后二项式反演一下就做完了。
还是注意到恰好。
设 \(g_k\) 是至少有 \(k\) 对情侣的情况。
可以写出:
\[g_k=\binom{n}{k}^2k!2^k(2n-2k)!
\]
进行二项式反演:
\[f_k=\sum_{i=k}^n(-1)^{i-k}\binom{i}{k}g_i\\
=\sum_{i=k}^n(-1)^{i-k}\binom{i}{k}\binom{n}{i}^2i!2^i(2n-2i)!\\
=\sum_{i=k}^n(-1)^{i-k}\frac{i!}{k!(i-k)!}\frac{(n!)^2}{(i!)^2((n-i)!)^2}i!2^i(2n-2i)!\\
=\frac{(n!)^2}{k!}\sum_{i=k}^n(-1)^{i-k}\frac{(2n-2i)!}{(i-k)!((n-i)!)^2}2^i\\
=\frac{(n!)^2}{k!}\sum_{i=k}^n(-1)^{i-k}\frac{2^i}{(i-k)!}\binom{2n-2i}{n-i}
\]
令 \(m=n-k\)
\[\frac{(n!)^2}{k!}\sum_{i=0}^m(-1)^{i}\frac{2^i}{i!}\binom{2m-2i}{m-i}
\]
后面一坨可以预处理,然后就做完了。
看到恰好,还是先考虑二项式反演。
钦定 \(x\) 位置升高。问题变成了把 \(1\) ~ \(n\) 放入 \(n−k\) 个有标号的集合,使得每个集合不为空的方案数。
这个可以容斥解决,可以得到:
\[f(k)=\sum_{i=0}^k\binom{k}{i}(-1)^i(k-i)^n\\
=k!\sum_{i=0}^k\frac{(-1)^i}{i}\frac{(k-i)^n}{(k-i)!}
\]
显然卷积可以算,再看二项式反演:
\[f_i=\sum_{j=i}^n(-1)^i\binom{j}{i}f_j
\]
其实是减卷积。
所以用两次 ntt 就解决了(
第一类斯特林数
感觉没啥用啊(
记作 \(n\brack m\),表示将 \(n\) 个两两不同的元素,划分为 \(k\)
个互不区分的非空轮换的方案数。
递推式:\({n\brack m}={n-1\brack m-1}+(n-1){n-1\brack m}\)
例题:
可以发现,其实就是在 \(n-1\) 个数里弄 \(a+b-2\) 个轮换(应为最大值一定且是前缀最大值与后缀最大值),然后再 \(a+b-2\) 给个轮换中选 \(a-1\) 个,轮换的首(或者尾)一定是最大值,那么一个轮换在排列中只有 \(1\) 的贡献,且选出轮换后顺序是固定的。
所以只需要预处理出组合数和第一类斯特林数就可以 \(O(1)\) 求了。
第二类斯特林数
记作 \(n\brace m\),组合意义是 \(n\) 个有编号的球放入 \(m\) 个无编号的盒子,无空盒的方案数。
有递推式:\({n\brace m}={n-1\brace m-1}+m{n-1\brace m}\)
还有:
\[m^{n}=\sum_{i=1}^{m}{n\brace i}i!\times\binom{m}{i} \rightarrow m^{n}=\sum_{i=0}^{m}{n\brace i}m^{\underline{i}} \\
{n\brace m}m!=\sum_{i=1}^{m}(-1)^{m-i}\binom{m}{i} i^{n}
\]
例题
求 \(\sum_{i=0}^n\binom{n}{i}i^x\)
由前面的式子得:
\[
=\sum_{i=0}^{n}\binom{n}{i} \sum_{j=0}^{i}{x\brace j} j!\times\binom{ i}{j} \\
=\sum_{i=0}^{n} \sum_{j=0}^{i}\binom{n}{i}\binom{i}{j}{x\brace j} j! \\
=\sum_{i=0}^{n} \sum_{j=0}^{i} \frac{n!}{i!(n-i)!} \frac{i!}{j!(i-j)!}{x\brace j} j!\\
=\sum_{i=0}^{n} \sum_{j=0}^{i} \frac{n!}{(n-i)!(i-j)!}{x\brace j}\\
=\sum_{j=0}^{n} \frac{n!}{(n-i)!}{x\brace j}\sum_{i=0}^{n}\binom{n-j}{n-i}\\
=\sum_{j=0}^{n} \frac{n!}{(n-i)!}{x\brace j}2^{n-j}
\]
直接开始推吧:
\[\sum_{i=0}^n\sum_{j=0}^i S(i,j)\times 2^j \times (j!)\\
=\sum_{i=0}^n\sum_{j=0}^n 2^j\sum_{k=0}^j(-1)^{j-k}\binom{j}{k}k^i\\
=\sum_{j=0}^n 2^j\sum_{k=0}^j(-1)^{j-k}\binom{j}{k}\sum_{i=0}^nk^i
\]
令 \(\sum_{i=0}^nk^i=u_i\)
\[\sum_{j=0}^n 2^j\sum_{k=0}^j(-1)^{j-k}\binom{j}{k}u_i\\
=\sum_{j=0}^n 2^j\sum_{k=0}^j\frac{j!u_i(-1)^{j-k}}{k!(j-k)!}\\
=\sum_{j=0}^n 2^jj!\sum_{k=0}^j\frac{u_i(-1)^{j-k}}{k!(j-k)!}
\]
后面可以拆成卷积形式:
\[\sum_{k=0}^j\frac{u_i}{k!}\times\frac{(-1)^{j-k}}{(j-k)!}
\]
直接 NTT 做就可以了。
题目可以转化成:
\[\frac{\sum_{i=0}^{k}\binom{m}{i}\binom{n-m}{k-i} i^{L}}{\binom{n}{k}}
\]
然后开始推式子:
\[\sum_{i=0}^{k}\binom{m}{i}\binom{n-m}{k-i} i^{L}\\
=\sum_{i=0}^{k}\binom{m}{i}\binom{n-m}{k-i}\sum_{j=0}^{i}{L\brace j}j!\times\binom{i}{j}\\
=\sum_{j=0}{L\brace j}j!\binom{m}{j}\sum_{i=0}^{k}\binom{m-j}{i-j}\binom{n-m}{k-i}\\
=\sum_{j=0}{L\brace j}j!\binom{m}{j}\binom{n-j}{k-j}
\]
第二类斯特林数·行 可以 \(O(n\log n)\) 做,然后就做完了。
求
\[\left(\sum_{k=0}^{n}f(k)\times x^k\times \binom{n}{k}\right)\bmod p
\]
好,我们来推式子,先把普通幂多项式转换成下降幂多项式:
\[\sum_{k=0}^{n}\sum_{i=0}^mb_i\times k^{\underline{i}}\times x^k\times \binom{n}{k}\\
=\sum_{k=0}^{n}x^k\binom{n-i}{k-i}\sum_{i=0}^mb_i\times n^{\underline{i}}\\
=\sum_{i=0}^mb_in^{\underline{i}}x^i\sum_{k=i}^{n}x^{k-i}\binom{n-i}{k-i}\\
=\sum_{i=0}^mb_in^{\underline{i}}x^i\sum_{u=0}^{n-i}x^{u}\binom{n-i}{u}\\
=\sum_{i=0}^mb_in^{\underline{i}}x^i(x+1)^{n−i}\\
\]
现在是求 \(b_i\),我们知道第二类斯特林数与下降幂有关,推一下得到 \(b_i=\sum_{j=i}^n{j\brace i}a_j\),然后就做完了。
求
\[\sum_{x=0}^n\binom{n}{x}p^x(1-p)^{n-x}x^k\\
=\sum_{x=0}^n\binom{n}{x}p^x(1-p)^{n-x}\sum_{i=0}^{x}{k\brace i}i!\times\binom{x}{i}\\
=\sum_{x=0}^np^x(1-p)^{n-x}\sum_{i=0}^{x}{k\brace i}i!\binom{n}{i}\binom{n-i}{x-i}\\
=\sum_{i=0}^{n}{k\brace i}i!\binom{n}{i}\sum_{x=i}^n\binom{n-i}{x-i}p^x(1-p)^{n-x}\\
=\sum_{i=0}^{n}{k\brace i}i!\binom{n}{i}\sum_{u=0}^{n-i}\binom{n-i}{u}p^{u+i}(1-p)^{n-i-u}\\
=\sum_{i=0}^{n}{k\brace i}i!\binom{n}{i}p^i\sum_{u=0}^{n-i}\binom{n-i}{u}p^{u}(1-p)^{n-i-u}\\
=\sum_{i=0}^{n}{k\brace i}i!\binom{n}{i}p^i
\]
然后就可以直接做了。
Prüfer 序列与树的计数
只需要知道 Prüfer 的定义就够用了。
定义:每次选择一个编号最小的叶结点并删掉它,然后在序列中记录下它连接到的那个结点.重复 \(n-2\) 次后就只剩下两个结点,然后形成 Prüfer 序列。
然后有结论:\(n\) 个点被分成 \(k\) 个连通块,用 \(k−1\) 条将这些连通块连通的方案数为
\[n^{k-2}\prod_{i=1}^k{sz}_i
\]
容易得到答案。
考虑将边双缩点,就是一棵树。
那么上面的式子只需要考虑后面一坨的结果。
设 \(f_{i,j}\) 为 \(i\) 个点,\(j\) 条割边的 \(\sum_G\prod_{i=1}^k{sz}_i\)
递推式容易得出:
\[f_{i,j}=\sum_{k=1}^{i-1}f_{{i-k},{j-1}}\times f_{k,0} \times \binom{i}{k}
\]
那 \(f_{i,0}\) 怎么算(
考虑容斥,那么就要求 \(i\) 个结点的有标号无向连通图个数,就是 P10982,可以自行学习。
因为没有钦定顺序,所以要除 \((j+1)!\)
答案是
\[\sum_{i=0}^mf_{n,i}\times n^{i-1}
\]
OGF
比较常见吧。
直接上例题:
将序列看作一个 OGF,求它的前缀和就是乘上 \(1+x+x^2+x^3+...\),我们熟知是等于 \(\frac{1}{1-x}\)
把它们卷起来即可。
前缀差分就是 \((1-x)\)
\(k\) 维就使用多项式快速幂。
有的人就会问了,主播主播,你的多项式快速幂还是太吃常数了,有没有跑的更快的方法推荐一下?
有的兄弟有的,直接用广义二项式定理打开就可以了,什么,不知道广义二项式定理是什么,自己百度。
剩下就自己做了。
EGF
套路的,使用 Prüfer 进行转化,我们注意到 Prüfer 序列的值可以刻画度数。
那么答案就是 \(\le m-2\) 的方案数 - \(\le m-1\) 的方案数
反射容斥
第一次听还是 popo 讲的/ll
处理的就是一类有限制的格路计数问题:给你一或二条直线,问你在不经过直线的情况下到达 \((n,m)\) 的方案数。
先考虑一条直线怎么做,如果一条路径经过这条直线,我们将第一个与直线的交点前面部分沿直线翻折,容易发现,现在翻折后的起点到终点的路径数就是不合法的路径数。
两条直线就直接容斥,复杂度是 \(O(\frac{n+m}{b+c})\)。
不难发现,实际问的是笛卡尔树的形态数量。但对笛卡尔树计数比较困难,并且还有限制,故考虑重新刻画笛卡尔树。
众所周知,树可以转换成一一对应的括号序。我们令一个子树 \(u\) 的括号序为 \(s_u=(s_{ls})s_{rs}\),限制是 \([1,l],l\in [1,2n]\) 内,\(\text{左括号数} - \text{右括号数} \le m\)。
那么可以转化成格路计数问题,起点为 \((0,0)\),终点为 \((n,n)\) 且不能穿过 \(y=x+m,y=x\),直接反射容斥做就可以。