题意:有
颗珠子,每个珠子的颜色在
中等概率随机,求能找出
个同色对子的概率。
答案对 取模,,,时限 。
求出符合要求的方案数,再除以总方案数 即可。
出现偶数次的颜色均可配对,出现奇数次的颜色有一个无法配对。由于最多浪费
个珠子,出现奇数次的颜色不超过
个(这是充要条件)。
算法一:卷积
记 为钦定 个颜色出现偶数次的方案数, 为恰好
个颜色出现偶数次的方案数,根据组合意义和二项式反演
若得到 ,可以用卷积加速二项式反演 求出 ,答案即为 。
出现任意次的颜色的数列为 ,EGF 为 。
出现偶数次的颜色的数列为 ,EGF 为 。
易知 忽略常数 显然是卷积的形式,可以 计算。
算法二:整式递推
考虑二元生成函数,
表示出现次数,
表示出现次数为奇数的颜色数。单个颜色的 EGF 为 共有
种颜色,则颜色序列(排成一排的
个珠子)的 EGF 为 。
约束是奇数不超过
个。答案即为 把 代换掉,令 我们需要 。
为了避免负次数,可以改为 则只需 。
若已知
的各项系数,答案易求。具体而言 线性筛幂即可做到 。
接下来思考如何线性求
的系数。
记 ,则
。
满足不齐次微分方程 易知
也满足某种不齐次微分方程。
抹去尾项,设
满足齐次微分方程 ,解得 ,令 ,先推导出
的齐次微分方程,加上一个尾项就能得到
的微分方程,而这个尾项必然是代数的。
计算得 ,易知其满足齐次微分方程
。那么 满足微分方程 其中尾项
为(代数的)某多项式。
用待定系数法求出
的整式递推, 求出 ,然后对 提取 系数得 ,即可求出 。( 需要特殊处理)
注:事实上,如果进行精确计算,可知 。
欲求 ,则我们需要解决
的
ODE,求导可得
总复杂度 。