05 Mar 2021 1468字 5分 次 数学, 多项式, and 生成函数
如果这篇博客帮助到你,可以请我喝一杯咖啡~
CC BY-NC-SA 4.0 (除特别声明或转载文章外) 首先,有一个显而易见的结论,我们要求的答案是原数组的乘积减去 k 次操作后数组的乘积的期望。
我们设每个数被选中的次数为 bi,则我们要求的是 E(i=1∏n(ai−bi)),如果枚举所有种类的 bi,即 nk1k!∏i=1nbi!(ai−bi) 我们写出后面这个东西的生成函数:
Fk(x)====i=0∑∞i!(ak−i)xii=0∑∞i!akxi−i=0∑∞i!ixiaki=0∑∞i!xi−xi=0∑∞i!xi(ak−x)ex我们要求的就是 [xk]i=1∏nFi(x)=[xk](enxi=1∏n(ai−x))=[xk]((i=0∑∞i!nixi)i=1∏n(ai−x))。
i=1∏n(ai−x) 是一个 n 次多项式,本题中可以暴力计算,所以我们将其写成 i=0∑nfixi 的形式。
答案即为
nk1k!i=0∑nfi(k−i)!nk−i=i=0∑nfin−iki最后记得用 i=1∏nai 减去即可。