某道 EGF 题目

题面

\((n+m+k)\) 盏灯,各有不同的编号与开关。其中有 \(n\) 盏亮着的, \(m\) 盏暗灯, \(k\) 栈坏的灯。亮灯按下开关将变成暗灯,暗灯按下开关将变成亮灯,坏灯无论如何按开关都是暗灯。求操作严格 \(t\) 次后,所有灯都是暗灯的方案数。结果对 \(10^9+7\) 取模。

\(n,m\leq 5\times 10^3,t,k\leq 10^{18}\)


记号规定

对于数列 \(\{a_n\}\)\(EGF(a_n)=A^e(x)\) 表示其指数型生成函数


分析

\(ans[t]\) 表示操作严格 \(t\) 次的方案数,不难写出方程:

考虑 \(t\) 个位置中,先选择 \(p\) 个位置给所有亮灯,再选 \(q\) 个位置给所有暗灯,最后选 \(r\) 个位置给所有坏灯

\(\displaystyle ans[t]=\sum_{p+q+r=t} \left( \begin{matrix} t \\ p,q,r \end{matrix} \right) f_n[p]g_m[q]k^r\)

其中:

\(f_n[p]\) 表示操作 \(p\) 次,让亮着的 \(n\) 盏灯全部变暗的方案数

\(g_m[q]\) 表示操作 \(q\) 次,让暗着的 \(m\) 盏灯全部仍是暗的方案数

考虑到 \(\displaystyle \left( \begin{matrix} t \\ p,q,r \end{matrix} \right)={t!\over p!\cdot q!\cdot r!\cdot(t-p-q-r)!},(t-p-q-r)!=0!=1\)

整理式子得 \(\displaystyle {ans[t]\over t!}=\sum_{p+q+r=t}{f_n[p]\over p!}\cdot {g_m[q]\over q!}\cdot {k^r\over r!}\)

因此有 \(Ans^e=F_n^e\cdot G_m^e\cdot EGF(k^r)\)

因为 \(\displaystyle EGF(k^r)=\sum_{r=0}^\infty {k^r\over r!}x^r=\sum_{r=0}^\infty {1\over r!}(kx)^r=e^{kx}\)

故接着考虑 \(F_n^e\)\(G_m^e\)


对于 \(F_n^e\) ,我们不难列出转移式子:考虑第一个亮的灯按开关次数,显然必须按奇数次;则剩余 \((n-1)\) 个开关的方案数,等价于只有 \((n-1)\) 个开关的方案数

\(\displaystyle f_n[p]=\sum_{i=0}^p \left( \begin{matrix} p \\ i \end{matrix} \right)f_{n-1}[p-i][2\nmid i]\)

整理得到 \(\displaystyle {f_n[p]\over p!}=\sum_{i+j=p}{f_{n-1}[j]\over j!}\cdot {1^i- (-1)^i\over 2i!}\)

故两边取 EGF 得到 \(\displaystyle F_n^e=F_{n-1}^e\cdot ({e^x-e^{-x}\over 2})\)

又因为 \(\displaystyle f_1[p]=[2\nmid p]\Rightarrow F_1^e={e^x-e^{-x}\over 2}\)

因此递推得到 \(\displaystyle F_n^e=F_1^e\cdot ({e^x-e^{-x}\over 2})^{n-1}=({e^x-e^{-x}\over 2})^n\)


对于 \(G_m^e\) ,我们同样考虑第一个暗灯按开关只能为偶数次,故同样可列出转移方程:

\(\displaystyle g_m[q]=\sum_{i=0}^q\left( \begin{matrix} q \\ i \end{matrix} \right)g_{m-1}[q-i][2\mid q]\)

同样整理可得 \(\displaystyle {g_m[q]\over q!}=\sum_{i+j=q}{g_{m-1}[j]\over j!}\cdot {1^i+(-1)^i\over 2i!}\)

因此 \(\displaystyle G_m^e=G_{m-1}^e\cdot ({e^x+e^{-x}\over 2})\)

同样因为 \(\displaystyle g_1[q]=[2\mid q]\Rightarrow G_1^e={e^x+e^{-x}\over 2}\)

故同样的 \(\displaystyle G_m^e=G_1^e\cdot ({e^x+e^{-x}\over 2})^{m-1}=({e^x+e^{-x}\over 2})^m\)


回到原式,我们现在得到了:

\(\displaystyle Ans^e(x)=({e^x-e^{-x}\over 2})^n\cdot ({e^x+e^{-x}\over 2})^m\cdot e^{kx}\)

将右边展开得 \(\displaystyle Ans^e(x)={(e^{2x}-1)^n\cdot (e^{2x}+1)^m\over 2^{n+m}}\cdot e^{(k-n-m)x}\)

posted @ 2020-11-13 13:26  JustinRochester  阅读(274)  评论(5编辑  收藏  举报