Luogu5401 [CTS2019] 珍珠

题意:有 颗珠子,每个珠子的颜色在 中等概率随机,求能找出 个同色对子的概率。

答案对 取模,,时限


求出符合要求的方案数,再除以总方案数 即可。

出现偶数次的颜色均可配对,出现奇数次的颜色有一个无法配对。由于最多浪费 个珠子,出现奇数次的颜色不超过 个(这是充要条件)。

算法一:卷积

为钦定 个颜色出现偶数次的方案数, 为恰好 个颜色出现偶数次的方案数,根据组合意义和二项式反演

若得到 ,可以用卷积加速二项式反演 求出 ,答案即为

出现任意次的颜色的数列为 ,EGF 为

出现偶数次的颜色的数列为 ,EGF 为

易知 忽略常数 显然是卷积的形式,可以 计算。

算法二:整式递推

考虑二元生成函数, 表示出现次数, 表示出现次数为奇数的颜色数。单个颜色的 EGF 为 共有 种颜色,则颜色序列(排成一排的 个珠子)的 EGF 为

约束是奇数不超过 个。答案即为 代换掉,令 我们需要

为了避免负次数,可以改为 则只需

若已知 的各项系数,答案易求。具体而言 线性筛幂即可做到

接下来思考如何线性求 的系数。

,则

满足不齐次微分方程 易知 也满足某种不齐次微分方程。

抹去尾项,设 满足齐次微分方程 ,解得 ,令 ,先推导出 的齐次微分方程,加上一个尾项就能得到 的微分方程,而这个尾项必然是代数的。

计算得 ,易知其满足齐次微分方程 。那么 满足微分方程 其中尾项 为(代数的)某多项式。

用待定系数法求出 的整式递推, 求出 ,然后对 提取 系数得 ,即可求出 。( 需要特殊处理)

注:事实上,如果进行精确计算,可知

欲求 ,则我们需要解决 的 ODE,求导可得

总复杂度