忘光了,所以复习【COM】

组合

参考自

模数默认\(998244353\)

数学

特征方程

求解 \(F_n=a F_{n-1}+b F_{n-2}\)

假设这是一个公比为 \(q\) 的等比数列,那么 \(q^2 F_{n-2}-a q F_{n-2}-b F_{n-2}=0\)

\(q^2-aq-b=0\) 可以得到两个根 \(q_0,q_1\)

不难发现,对于任意 \(F_n=u q_0^n+v q_1^n\) 均满足递推式。

只需要两个点值解出方程即可。

常系数齐次线性递推

对于数列 \(F\) 和常数列 \(C\),满足 \(n\ge k\)\(\displaystyle \sum_{i=0}^{k}C_i F_{n-i}=0\) 则称 \(F\) 满足 ( \(k\) 阶 ) 线性常系数递推关系。

\(F(x)\)\(F\) 的生成函数,构造 \(\displaystyle F_t(x)=C_tx^t \left(F(x)-\sum_{i=0}^{k-t-1}F_ix^i \right)\)

可以发现 \([x^n]F_t(x)=[n\ge k]C_t F_{n-t}\)

又因为 \(\displaystyle [n\ge k]\sum_{i=0}^{k}C_i F_{n-i}=0\) 能得到 \(\displaystyle\sum_{t=0}^{k}F_t(x)=0\),即 \(\displaystyle \sum_{t=0}^{k} C_tx^t \left(F(x)-\sum_{i=0}^{k-t-1}F_ix^i \right)=0\)

整理: \(\displaystyle \sum_{t=0}^{k} C_t x^t F(x)= \sum_{t=0}^{k-1}C_t x^t\sum_{i=0}^{k-t-1}F_ix^i=\sum_{t=0}^{k-1}x^t\sum_{i=0}^{t}C_{t-i}F_i\)

可以发现,左边有明显的 \(C\) 的生成函数 \(C(x)\),右边是一个 \(k-1\) 次多项式 \(P(x)\)

那么 \(F(x)=\dfrac{P(x)}{C(x)}\)

分式分解

上一个的逆变换,咕咕咕。

卡特兰数

定义:\(n\) 对括号的合法序列数,记为 \(C\)\(C_0=1\)

有一个简单递推式:\(\displaystyle C_{n+1}=\sum_{i=0}^n C_i C_{n-i}\)

组合理解 : 枚举第一对括号里面装了多少东西,其内外各为完整的合法序列。

这个式子看起来非常像卷积,我们令其自卷:\(\displaystyle C^2_n=\sum_{i=0}^n C_i C_{n-i}=C_{n+1}\)

令卡特兰数生成函数为 \(C(x)\)

不难得到 \(C_{n+1}\) 处的幂级数为 \(\dfrac{C(x)-1}x\)

那么 \(C^2(x)=\dfrac{C(x)-1}x\)。解得 \(C(x)=\dfrac{1\pm\sqrt{1-4x}}{2x}\)

根据 \(x\to 0\) 时的极限,\(C(x)=\dfrac{1+\sqrt{1-4x}}{2x}\) 显然不合法。

所以可以根据广义二项式定理得到 \(C(x)=\dfrac{1-\sum_i\binom{\frac 12} i (-4)^i x^i}{2x}\)

\[\begin{aligned} C_{i}&=-\frac {\binom{\frac 12}{i+1}(-4)^{i+1}}2\\ &=-\frac {\prod\limits_{j=0}^{i}\frac{1-2 j}2(-4)^{i+1}}{2(i+1)!}\\ &=-\frac {\prod\limits_{j=0}^{i}(1-2 j)(-4)^{i+1}}{2^{i+2}}\\ &=-\frac {(-1)^i\prod\limits_{j=1}^{i}(2 j-1)(-4)^{i+1}}{2^{i+2}}\\ &=\frac {(2i-1)!4^{i+1}}{2^{2i+1}(i-1)!(i+1)!}=\frac{2(2i-1)!}{(i-1)!(i+1)!}=\frac{\binom{2i}i}{i+1}\\ \end{aligned} \]

Luogu 4931 [MtOI2018]情侣?给我烧了!(加强版)

\(n\) 对情侣,坐 \(n\)\(2\) 列个位置,问有多少方案恰好有 \(k\) 对情侣坐在同一行。

多次询问。\(0\le k\le n\le 5\times 10^6,1\le T\le 2\times 10^5\)

题解:

二项式反演。令 \(G(x)\) 为钦定 \(k\) 对的方案数,\(H(x)\) 为恰好 \(k\) 对的方案数。

不难发现 \(\displaystyle G(i)=\binom n i^2 i! 2^i(2n-2 i)!\)(选哪些对,选哪些行,对之间可以互换,对内部可以互换,剩下随便放)。

\[\begin{aligned} H(x)&=\sum_{i=x}^n (-1)^{i-x}\binom i x G(i)\\ &=\sum_{i=x}^n (-1)^{i-x}\binom i x \binom n i^2 i! 2^i(2n-2 i)!\\ &=\sum_{i=x}^n (-1)^{i-x}\frac{n!n!}{x!(i-x)!(n-i)!(n-i)!}2^i(2n-2 i)!\\ &=\frac{(n!)^2}{x!}\sum_{i=x}^n \frac{(-1)^{i-x}}{(i-x)!}2^i\binom{2n-2i}{n-i}\\ &=\frac{(n!)^2 2^x}{x!}\sum_{i=x}^n \frac{(-2)^{i-x}}{(i-x)!}\binom{2n-2i}{n-i}\\ &=\frac{(n!)^2 2^x}{x!}\sum_{i=0}^{n-x} \frac{(-2)^{i}}{i!}\binom{2n-2i-2x}{n-i-x}\\ &=\frac{(n!)^2 2^x}{x!}\sum_{i=0}^{n-x} \frac{(-2)^{i}}{i!}\binom{2n-2i-2x}{n-i-x}\\ \end{aligned} \]

右边是卷积形式,常数小直接过,但是没必要。

先不管左边的常数,设右边的生成函数为 \(F(x)\),记为数列 \(F\)

令生成函数 \(\displaystyle F_1(x)=\sum_i \frac{(-2)^i}{i!} x^i=e^{-2x}\)\(\displaystyle F_2(x)=\sum_i \binom{2 i}i x^i\) ,那么 \(F(x)=F_1(x)F_2(x)\)

\(F_2\) 有点困难,需要注意到 \(\displaystyle \binom{2i}i=\binom{i-\frac 12}{i}4^i=\binom{-\frac 12}i(-4)^i\)

然后使用广义二项式定理:\(F_2(x)=\displaystyle \sum_i \binom{-\frac 12}i(-4)^i x^i=(1-4 x)^{-\frac12}\)

所以 \(F(x)=\dfrac{e^{-2x}}{\sqrt{1-4x}}\)

考虑经典的求导:

\[\begin{aligned} F'(x)&=\frac{8x}{1-4x}F(x)\\ F'(x)&=4xF'(x)+8xF(x)\\ [x^n]F'(x)&=4[x^{n-1}]F'(x)+8F_{n-1}\\ (n+1)F_{n+1}&=4nF_n+8F_{n-1} \end{aligned} \]

可以递推了。

初步

组合对象

组合对象指满足某一性质的树、图、串等可数的对象。组合对象组成的集合成为组合类。

对于组合类 \(\mathcal A\) ,其中每个对象 \(a\in\mathcal A\) 都被定义了一个 “大小” \(|a|\),可能代表节点个数,串长等。

将所有大小为 \(n\) 的组合对象记作 \(\mathcal A_n\)

定义计数序列 \(A_n=|\mathcal A_n|\) ,即大小为 \(n\) 的组合对象的总数目。

我们的任务通常是求出 \(A_n\) 的数值。

笛卡尔积

\(\{(a_1,\dots,a_n)|a_i\in A_i,i\in[1,n]\}\) 为集合 \(A_{1\sim n}\) 的笛卡尔积。

记作 \(A_1\times A_2\times \dots\times A_{n}\)。也就是从每个集合中各取一个元素形成有序多元组的集合。

也就是从每个集合中各取一个元素形成有序多元组的集合。

对于两个组合对象 \(a,b\) 的组合 \((a,b)\) ,定义 \(|(a,b)|=|a|+|b|\)

这是非常自然的,比如两个长度为 \(a,b\) 的串接起来就得到了一个长度为 \(a+b\) 的串。

OGF

普通生成函数(ordinary generating function)

设有数列 \(F\),那么 \(F\) 的普通生成函数为 \(\displaystyle F(x)=\sum_{i=0}F_i x^i\)

\[[x^n](F\times G)=\sum_{i+j=n}F_i G_{j} \]

经典 OGF 及封闭形式

  • \(\forall i\ge 0,F_i=1\)\(F(x)=\displaystyle\frac{1}{1-x}\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 0}x^i \\ xF(x)&=\displaystyle \sum_{i\ge 1}x^i\\ xF(x)&=F(x)-1 \end{aligned} \]

  • \(F_0=0,\forall i\ge 0,F_i=1\)\(F(x)=\displaystyle\frac{x}{1-x}\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 1}x^i \\ xF(x)&=\displaystyle \sum_{i\ge 2}x^i\\ xF(x)&=F(x)-x \end{aligned} \]

  • \(\forall i\ge 0,F_i=a^i\)\(F(x)=\displaystyle\frac{1}{1-ax}\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 0}a^ix^i \\ axF(x)&=\displaystyle \sum_{i\ge 1}a^ix^i\\ axF(x)&=F(x)-1 \end{aligned} \]

  • \(\forall i\ge 0,F_i=[k|i]\)\(|\) 是整除):\(F(x)=\dfrac{1}{1-x^k}\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 0}x^{ik} \\ x^kF(x)&=\displaystyle \sum_{i\ge 1}x^{ik}\\ x^kF(x)&=F(x)-1 \end{aligned} \]

  • \(\forall i\ge 0,F_i=[k|i]a^{\frac i k}\)\(|\) 是整除):\(F(x)=\dfrac{1}{1-ax^k}\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 0}a^ix^{ik} \\ ax^kF(x)&=\displaystyle \sum_{i\ge 1}x^{ik}\\ ax^kF(x)&=F(x)-1 \end{aligned} \]

  • \(F_0=0,\forall i\ge 1,F_i=\dfrac 1 i\)\(F(x)=-\ln(1-x)\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 1}\frac {x^i}i \\ F'(x)&=\sum_{i\ge 0}x^i=\frac 1{1-x} \\ F(x)&=\int\frac{\mathrm dx}{1-x}=-\ln(1-x) \end{aligned} \]

  • \(\forall i\ge 0,F_i=\dfrac 1{i!}\)\(F(x)=e^x\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 1}\frac {x^i}{i!} =e^x\\ \end{aligned} \]

    (泰勒展开)

  • \(\forall i\ge 0,F_i=i+1\)\(F(x)=\dfrac 1{(1-x)^2}\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 0}(i+1){x^i} \\ \int F(x)\mathrm dx&=\int \sum_{i\ge 1}ix^{i-1}\mathrm dx=\sum_{i\ge 0}x^i =\frac 1{1-x}\\ F(x)&=\left(\frac1{1-x}\right)'=\frac1{(1-x)^2} \end{aligned} \]

  • \(\forall i\ge 0,F_i=\displaystyle\binom{n}{i}\)\(F(x)=(1+x)^n\)

    \[\begin{aligned} F(x)&=\sum_{i\ge 0}\binom{n}{i}{x^i} =(1+x)^n\\ \end{aligned} \]

    (二项式定理)

  • \(\forall i\ge 0,F_i=\displaystyle\binom{n+i}{i}\)\(F(x)=\dfrac{1}{(1-x)^{n+1}}\)

    归纳,\(n=0\) 显然。当 \(n\ge 1\) 时:

    \[\begin{aligned} \dfrac{1}{(1-x)^{n+1}}&=\frac{1}{(1-x)^n}\frac 1{1-x}\\ &=\left(\sum_{i\ge0}\binom{n-1+i}{i}x^i\right)\left(\sum_{i\ge0}x^i\right)\\ &=\sum_{i\ge0}x^i\sum_{j=0}^i\binom{n-1+j}{j}\\ &=\sum_{i\ge0}\binom{n+i}{i}x^i \end{aligned} \]

\(1\). 设某种号码由小写英文字母和数字组成,且所有数字都出现在字母之后。允许没有英文或数字。求长度为 \(n\) 的号码个数。

题解:

长为 \(n\) 的纯字母串的生成函数为 \(F(n)=\dfrac{1}{1-26x}\),纯数字串的生成函数为 \(G(n)=\dfrac 1 {1-10x}\)

枚举字母个数可以得到答案 \(S_n=\displaystyle \sum_{i+j=n} F_i G_{j}\) 。所以 \(S(x)=F(x)G(x)=\dfrac{1}{(1-10x)(1-26x)}\)

$2. $ 有若干种颜色互不相同的骨牌,其中长度为 \(i\) 的骨牌有 \(a_i\) 种。每种颜色的骨牌都可以无限次使用,求不重叠地铺到恰好长度 \(n\) 的方案数。

\(A(x)\)\(a\) 的生成函数。

枚举数量 \(i\),答案的生成函数即为 \(\displaystyle \sum_{i=0}A(i)^k=\frac 1{1-A(x)}\)

求逆即可。

\(3.\) [国家集训队2011答辩]整数的lqp拆分

给定 \(n\),求 \(\displaystyle\sum_{m>0,a_i>0(i\in[1,m]),\sum\limits_{i=1}^ma_i=n}\prod_{i=1}^m F_{a_i}\),其中 \(F\) 是斐波那契数列。

\(1\le n\le 10^{10000}\)

不难发现,本题可以看做上一题 \(a_i=F_i\) 的情况。

又因为 \(F(x)=xF(x)+x^2F(x)-F_0x+F_1x\Rightarrow F(x)=\dfrac{x}{1-x-x^2}\)

那么,答案的生成函数为 \(\dfrac{1}{1-\frac{x}{1-x-x^2}}=\dfrac{1-x-x^2}{1-2x-x^2}=1-\dfrac{x}{x^2+2x-1}\)

由于 \(n\ge 1\),前面的这个 \(1\) 没有用。

分式分解,令 \(x_1,x_2\)\(x^2+2x-1=0\) 的两根,即:

\[\begin{aligned} &=-\dfrac{x}{x^2+2x-1}\\ &=\frac{x}{x_2-x_1}\left(\frac1{x-x_1}-\frac1{x-x_2}\right)\\ &=\frac{x}{x_2-x_1}\left(\frac1{\frac{x}{x_1}-1}\frac1{x_1}-\frac1{\frac{x}{x_2}-1}\frac1{x_2}\right)\\ &=\frac{x}{x_2-x_1}\left(-\frac1{x_1}\sum_{i\ge 0} \frac{x^i}{x_1^i}+\frac1{x_2}\sum_{i\ge 0} \frac{x^i}{x_2^i}\right)\\ &=\frac{1}{x_2-x_1}\left(\sum_{i\ge 1} \frac{x^i}{x_2^i}-\sum_{i\ge 1} \frac{x^i}{x_1^i}\right)\\ \end{aligned} \]

\(n\) 项的系数即为 \(\displaystyle \frac1{x_2-x_1}\left(\frac1{x_2^n}-\frac1{x_1^n}\right)=\frac{1}{2\sqrt2}((1+\sqrt2)^n+(1-\sqrt2)^n)\)

可以处理出二次剩余,然后直接算。

$4. $ Codeforces 438 E

给定不可重集合 \(C\),对于 \(j\in[1,m]\) 求有多少棵带点权的不同构二叉树满足:令 \(i\) 的点权为 \(a_i\)\(a_i\in C,\sum_ia_i=j\)

二叉树区分左右儿子。\(1\le n,m,c_i\le 10^5\)

\(f_i\) 表示权值为 \(i\) 的二叉树的方案数,可以得到:

\[f_n=\sum_{i=0}^n\sum_{j=0}^{n-i}[i\in C]f_jf_{n-i-j} \]

\(F(x)\)\(f\) 的生成函数,\(G(x)=\sum\limits_{i\ge0}[i\in C]x^i\)

那么不难看出 \(F(x)=F^2(x)G(x)+1\)

解得 \(F(x)=\dfrac{1\pm\sqrt{1-4G(x)}}{2G(x)}\),利用 \(x\to 0\) 时的判别,发现取 \(+\) 时显然错误。

这里 \(2G(0)=0\) 不能求逆。

那么

\[\begin{aligned} F(x)&=\dfrac{1-\sqrt{1-4G(x)}}{2G(x)}\\ &=\dfrac{(1-\sqrt{1-4G(x)})(1+\sqrt{1-4G(x)})}{2G(x)(1+\sqrt{1-4G(x)})}\\ &=\dfrac{4G(x)}{2G(x)(1+\sqrt{1-4G(x)})}=\frac{2}{1+\sqrt{1-4G(x)}} \end{aligned} \]

其实不是特别严谨,因为 \(G\) 不能求逆,严谨一点只要每一步把 \(G\) 带上即可,过程几乎相同,懒了。

\(5.\) Luogu4389 付公主的背包

\(n\) 种大小为 \(v_i\) 的无限多的商品,对于 \(s\in[1,m]\) 求出商品恰好装 \(s\) 的方案数。

\(1\le n\le 10^5,1\le v_i\le m\le 10^5\)

题解:

一个物品的生成函数 \(\displaystyle V_i(x)=\sum_{j\ge 1}x^{jv_i}=\frac{1}{1-x^{v_i}}\),答案的生成函数就是把它们都乘起来。

由于是分数,所以我们把求逆放最后,先求卷积。

有一个技巧:取 \(\ln\) 之后,你就可以直接做加法了,最后 \(\exp\) 一下。

所以

\[\begin{aligned} \ln(1-x^{v_i})&=\int \frac{-v_ix^{v_i-1}}{1-x^{v_i}}\mathrm d x \\&=-v_i\int\frac{x^{v_i-1}}{1-x^{v_i}}\mathrm dx \\&=-v_i\int\sum_{j\ge 1}x^{jv_i-1}\mathrm dx \\&=-v_i\sum_{j\ge 1}\frac{x^{jv_i}}{jv_i} \\&=-\sum_{j\ge 1}\frac{x^{jv_i}}{j} \end{aligned} \]

这样可以用埃式筛预处理。

EGF

指数生成函数(exponential generating function)。

设有数列 \(F\),那么 \(F\) 的指数生成函数为 \(\displaystyle F(x)=\sum_{i=0}F_i \frac{x^i}{i!}\)

\[[x^n](F\times G)=\sum_{i+j=n}\binom{n}{i}F_i G_{j} \]

这个没有 OGF 显然,但是可以直接把 \(F,G,(F\times G)\) 用 OGF 的形式搞出来然后代数一下。

经典 EGF 及封闭形式

  • \(\forall i\ge 0,F_i=1\)\(F(x)=\displaystyle e^x\)

  • \(\forall i\ge 0,F_i=a^i\)\(F(x)=\displaystyle e^{ax}\)

    以上两个均为泰勒展开。

  • \(\forall i\ge 0,F_i=a^\underline{i}\)\(F(x)=(1+x)^a\)

    二项式定理。

组合意义:分配标号,把若干序列归并成一个。

OGF \(\mathcal A+\mathcal B\):拼接。

EGF \(\mathcal A+\mathcal B\):归并。

$1. $ 用红蓝绿三种颜色,涂一个长度为 \(n\) 的纸条,使得红色和蓝色的个数是偶数,求方案数。

题解:

我们用单独一种颜色涂任意长的纸条,方案数都是 \(1\)。由于前两种颜色不能涂奇数个,可以认为奇数的方案数是 \(0\)

绿色的 EGF:\(\displaystyle \sum_{i\ge 0}\frac{x^i}{i!}=e^x\)

红蓝的 EGF:\(\displaystyle \sum_{i\ge 0}[i\bmod 2=0]\frac{x^i}{i!}=\frac{e^x+e^{-x}}2\) 。(看做是数列 \(F_i=1\)\(F_i=(-1)^i\) 的和除以 \(2\)

乘起来:\(\displaystyle \left(\frac{e^x+e^{-x}}2\right)^2e^x=\frac{e^{3x}+2e^x+e^{-x}}4\),不难发现答案就是 \(\displaystyle \frac{3^n+2+(-1)^n}4\)

$2. $ Luogu 5219 无聊的水题 I

\(n\) 个点且最大点度为 \(m\) 的有标号无根树个数。

题解:

一个点 \(u\) 在 prufer 序列中出现 \(d_u-1\) 次(\(d_u\) 为度数)。

所以问题变成求 \(1\sim n\) 的数填充 \(n-2\) 长的序列,要求出现最多的数的次数等于 \(m-1\)

不难写出一个点的 EGF \(F_{m}(x)\)\(\displaystyle \sum_{i= 0}^{m-1} \frac{x^i}{i!}\)

答案只需要求个 \([x^{n-2}]F_m^n(x)-[x^{n-2}]F_{m-1}^n(x)\) 即可。

$3. $ [TJOI2019]唱、跳、rap和篮球

求不超过 \(a\) 个唱、\(b\) 个跳、\(c\) 个rap、\(d\) 个篮球拼出的长为 \(n\) 的序列数,要求 唱跳rap篮球 不能连一起。

题解:

二项式反演,令 \(f_i\) 为钦定放了 \(i\) 个“唱跳rap篮球”的方案数。

\[f_i=\binom{n-3i}iS(a-i,b-i,c-i,d-i,n-4i) \]

\(S(a,b,c,d,n)\) 表示用不超过 \(a\) 个唱、\(b\) 个跳、\(c\) 个rap、\(d\) 个篮球拼出的长为 \(n\) 的无限制序列数。

\(\binom{n-3i}i\) 可以看做 \(n-4i\) 个数插进去 \(i\) 个 唱跳rap篮球。

\(g_i\) 为恰好有 \(i\) 个的方案数。那么答案是 \(g_0\)

\[\displaystyle g_k=\sum_{i=k}^n(-1)^{i-k}\binom{i}kf_i=\sum_{i=k}^n(-1)^{i-k}\binom{i}k\binom{n-3i}{i}S(a-i,b-i,c-i,d-i,n-4i) \]

不难发现可以 EGF。\(n\le 1000\) 暴力 NTT 能过。

考虑递推,令 唱跳rap篮球 的 EGF依次为 \(F_1(x),F_2(x),F_3(x),F_4(x)\)

维护 \(F_1F_2,F_3F_4\),查询每次暴力求 \(\displaystyle \sum_{j=0}^{n-4i}[x^j](F_1F_2)[x^{i-j}](F_3F_4)\)

\(i\leftarrow i-1\)\(\displaystyle F_i=\sum_{j= 0}^{C_i}\frac{x^j}{j!}\)\(C_i\) 是对应的常数)变为 \(F'_i=\displaystyle \sum_{j= 0}^{C_i+1}\frac{x^j}{j!}\)

那么 \(F'_1F'_2=F_1F_2+\frac{x^{C_1+1}}{(C_1+1)!}F_2+\frac{x^{C_2+1}}{(C_2+1)!}F_1+\frac{x^{C_1+C_2+2}}{(C_1+1)!(C_2+1)!}\)

暴力卷积即可,复杂度 \(O(n^2)\)

\(\exp F(x)\) 的组合意义

\[\exp F(x)=\sum_{i\ge0}\frac{F^i(x)}{i!} \]

设把 \(i\) 个有标号小球放进一个盒子的方式有 \(f_i\) 种。特别的 \(f_0=0\)。令其 EGF 为 \(F(x)\)

\(n\) 个有标号球放入 \(k\) 个无标号盒子,方案数为:

\[\begin{aligned} G_{k,n}&=\frac{1}{k!}\sum_{\sum_{i=1}^ka_i=n}\binom{n}{a_1,\dots,a_k}\prod{f_{a_i}}\\ G_k(x)&= \frac{1}{k!}\sum_{n\ge 0}{x^n}\sum_{\sum_{i=1}^ka_i=n}\prod\frac{f_{a_i}}{a_i!}\\ G_k(x)&= \frac{1}{k!}F^k(x)\\ \end{aligned} \]

\(n\) 个有标号球放入若干个无标号盒子,方案数为:

\[\sum_{k\ge0}\frac{F^k(x)}{k!}=\exp(F(x)) \]

对于一个集合计数的问题,我们只需要弄清单个元素的特征,就能 \(\exp\) 而得到答案。

说的通俗一点,有标号的某东西方案数的 EGF,exp 一下就是有标号某东西集合方案数。

$4. $ 给出一个集合 \(S\),求环大小在 \(S\) 内的 \(1\sim n\) 元置换的个数。

置换其实就是一系列环有标号生成的集合。一个大小为 \(n\) 的环有 \((n-1)!\) 个方案。

单个环的 EGF:\(\displaystyle \sum_{i\ge1}[i\in S]\frac{x^i}{i}\)\(\exp\) 一下。

\(5.\) [集训队作业2013]城市规划

\(n\) 个点的简单有标号无向连通图数目。

\(n\le 130000\)

题解:

不难发现,一般图就是连通图 \(\exp\) 一下,所以只要 \(\ln\) 回去就行。

$6. $ WD与积木

\(n\) 分割成若干个集合,集合之间有顺序,问所有不同的分割方法之中集合个数的期望。

\(n\le 10^5\)

题解:

分别求总个数、总和。

生成单集合的 EGF 为 \(F(x)=\displaystyle\sum_{i\ge1}\frac{x^i}{i!}=e^x-1\)\(\{0,1,1,,1,\cdots\}\)

枚举集合个数,总个数的 EGF 即为:\(\displaystyle\sum_{i\ge 0}F^i(x)=\frac{1}{1-F(x)}=\frac{1}{2-e^x}\)(把 \(i\) 个集合有序归并,归并之后的下标加入对应集合)。

总和的 EGF 即为 \(\displaystyle\sum_{i\ge0}iF^i(x)=\frac{F(x)}{(1-F(x))^2}=\frac{e^x-1}{2-e^x}\)

预处理 \(\{1,-1,-1,-1,\dots\}\) 的逆元然后做一次乘法即可。

$1. $ 51nod1514美妙的序列

对于一个长度为 \(n\) 的排列 \(P\) ,若满足对于所有断点,其后半段存在一点,小于前半段的任意一数,则称其为美妙的。

求长为 \(n\) 的美妙排列数量。

\(T\le 10^5,n\le 10^5\)

题解:

不合法:前缀一段区间为排列。

\(f_i\) 表示长为 \(i\) 的美妙排列数量。

因为最长前缀的唯一性:\(\displaystyle f_n=n!-\sum_{i=1}^{n-1}f_{i}(n-i)!\)

\[\begin{aligned} f_n&=n!-\sum_{i=1}^{n-1}f_{i}(n-i)!\\ f_n&=n!-\sum_{i=1}^{n}f_{i}(n-i)!\\ \sum_{i=0}^{n}f_i(n-i)!&=n! \end{aligned} \]

\(F(x)\) 表示 \(f\) 的 OGF,\(G(x)\) 表示 \(g_i=i!\) 的生成函数。

那么 \(G(x)=F(x)G(x)+1\)\(+1\) 是因为 \(f_0=0\)\(0!=1\)

求逆即可。

\(2.\) [集训队互测 2012] calc

一个序列 \(a_1,a_2,\dots,a_n\) 是合法的,当且仅当:

  • \(a_1,a_2,\dots,a_n\) 都是 \([1,k]\) 中的整数。
  • \(a_1,a_2,\dots,a_n\) 互不相等。

一个序列的值定义为它里面所有数的乘积,即 \(a_1\times a_2\times\dots\times a_n\)

\(n\le 10^5,k\le 10^9\)

题解:

原来的 \(n\)\(500\)

考虑 \(f_{i,j}\) 表示前 \(i\) 个数值域 \(1\sim j\) 的所有方案乘积和。

\[\begin{aligned} f_{i,j}&=jf_{i-1,j-1}+f_{i,j-1}\\ f_{i,j}-f_{i,j-1}&=jf_{i-1,j-1} \end{aligned} \]

\(f_i(x)\)\(g_i\) 次多项式。

那么左边是 \(g_i-1\) 次多项式,右边是 \(g_{i-1}+1\) 次多项式,那么 \(g_i-1=g_{i-1}+1\),不难得到 \(g_i=2i\)

实际上,有生成函数简单做法。

不难发现 \(\displaystyle ans=[x^n]\prod_{i=1}^k(1+ix)\)

其实就是每个物品空间为 \(1\) 的背包。

尝试取对数:

\[\begin{aligned} \ln(1+ix) &= \ln(1-(-ix))\\ &= -\sum_{j\ge 1}\frac{({-ix})^j}{j}\\ &= -\sum_{j\ge 1}\frac{({-i})^j}{j}x^j\\ \prod_{i=1}^k(1+ix) &= \exp\sum_{i=1}^k\ln(1+ix)\\ &=\exp\sum_{j\ge1}\frac{(-1)^{j+1}\sum_{p=1}^kp^j}{j}x^j \end{aligned} \]

复杂度瓶颈来到了 \(\displaystyle \sum_{p=1}^kp^j\),每次插一遍太慢了。

这个东西的 EGF:\(\displaystyle \sum_{j\ge 0}\sum_{p=1}^k p^j\frac{x^j}{j!}\) 。`

\[\begin{aligned} \sum_{j\ge 0}\sum_{p=1}^k p^j\frac{x^j}{j!}&=\sum_{p=1}^k\sum_{j\ge0}\frac{(px)^j}{j!}\\ &=\sum_{p=1}^k e^{px}\\ &=\frac{e^{(k+1)x}-e^x}{e^{x}-1} \end{aligned} \]

下面的逆元虽然不存在,但是上面下面可以约掉一个 \(x\)

posted @ 2023-03-02 15:21  BqTmTsz  阅读(48)  评论(0)    收藏  举报