CF1349D
- 有 n 个人, 第 i 个人有 a_i 个饼干。
- 每次随机选择一个饼干, 将其随机分配给除了它现在所有者的其他 n-1 个人。
- 求使得一个人拥有所有饼干的期望步数,对 998244353 取模。
n\le 10^5,\sum a_i\le 3\cdot 10^5
\rm Sol:
这道题好像非常仙。感觉没法做。
设 P_x 表示最后饼干停留在 x 人上的概率。
设 E_x 表示第一次所有饼干停留在 x 上的期望步数乘以概率。
设 E_x' 表示当且仅当饼干停留在 x 上游戏才结束此意义下的期望。
那么有:
\sum P_x=1
答案为:
\sum E_x
设 C 为将全部饼干由一个人手中转移到另一个人手中的期望步数,那么我们有恒等式:
E_x'=E_x+\sum_{i\ne x} (E_i+P_i\cdot C)
表示最终停留在 E_x' 的概率有且仅有:
- 直接停留在 x 处
- 停留在 i 处,然后转移到 x 处。
- 注意到 E_i 附带了概率,所以仅有 C 要乘以 P_i
所以我们有:
E_x=E_x'-\sum_{i\ne x}(E_i+P_i\cdot C)
所求为:
\begin{aligned}
&\sum E_x
\\&=\sum \bigg(E_x'-\sum_{i\ne x}(E_i+P_i\cdot C)\bigg)
\\&=\sum E_x' -(n-1)\sum E_i-(n-1)\sum P_i\cdot C
\end{aligned}
所以我们得到:
n\cdot \sum E_x=\sum E_x'-(n-1)\cdot C\sum P_i
注意到 \sum P_i=1,设 A=\sum E_x',那么所求为:
\frac{A-(n-1)\cdot C}{n}
于是我们只需要求解 E_x' 与 C
设 f_i 表示当前有 i 个饼干在目标人手上期望需要多少步才能得到 i+1 个饼干,m 为饼干总数。
得到转移:
对于 m>i\ge 1:
f_i=1+\frac{i}{m}(f_{i-1}+f_i)+\frac{m-i}{m}\times \frac{n-2}{n-1}f_i
(1-\frac{i}{m}-\frac{m-i}{m}\cdot \frac{n-2}{n-1})f_i=1+\frac{i}{m}f_{i-1}
对于 i=0:
f_0=1+\frac{n-2}{n-1}f_0\to f_0=n-1
于是对于 E_x',我们容易得到其为 \sum_{i\ge x} f_i,同时 f_i 可以直接递推。
同时,显然有 C=\sum_{i\ge 0} f_i
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步