忘光了,所以复习【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}\)。
题
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\)。
经典 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!}\)。
这个没有 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)\) 的组合意义
设把 \(i\) 个有标号小球放进一个盒子的方式有 \(f_i\) 种。特别的 \(f_0=0\)。令其 EGF 为 \(F(x)\)。
把 \(n\) 个有标号球放入 \(k\) 个无标号盒子,方案数为:
把 \(n\) 个有标号球放入若干个无标号盒子,方案数为:
对于一个集合计数的问题,我们只需要弄清单个元素的特征,就能 \(\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)!\) 。
令 \(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\) 的所有方案乘积和。
设 \(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\) 的背包。
尝试取对数:
复杂度瓶颈来到了 \(\displaystyle \sum_{p=1}^kp^j\),每次插一遍太慢了。
这个东西的 EGF:\(\displaystyle \sum_{j\ge 0}\sum_{p=1}^k p^j\frac{x^j}{j!}\) 。`
下面的逆元虽然不存在,但是上面下面可以约掉一个 \(x\)。

浙公网安备 33010602011771号