AT_arc185_d
这题我都会,但是国家队场上没过,可以装逼了!/kx/kx/kx
题意:给定 \(n,m\),有一颗根节点下面挂着 \(n\) 条有 \(m\) 个点的链的树,一开始你在根节点且只有根节点被染色,每次操作你会等概率随机选择一条相邻的边移动,如果到达的点还未被染色则将其染色,问将所有点染色所需操作次数的期望,\(1\le n,m\le 2\times 10^5\),对 \(998244353\) 取模。
分析一下,其实要求的是到达过所有链底所需操作次数的期望。
考虑 \(n=1\) 怎么做,考虑期望 DP,设 \(f_i\) 为从深度(从零开始)为 \(i\) 的点到链底所需操作次数的期望。
显然 \(f_m=0,f_0=f_1+1,f_{1\le i<m}=\frac{f_{i-1}+f_{i+1}}{2}+1\)。
令 \(f_{0\le i<m}=k_if_{i+1}+b_i\),则只需求得所有的 \(k_i,b_i\) 即可求得所有的 \(f_i\)。
\(f_{i+1}=\frac{f_i+f_{i+2}}{2}+1=\frac{k_if_{i+1}+b_i+f_{i+2}}{2}+1\)。
\((1-\frac{k_i}{2})f_{i+1}=\frac{b_i+f_{i+2}}{2}+1\)。
\(f_{i+1}=\frac{f_{i+2}}{2-k_i}+\frac{\frac{b_i}{2}+1}{1-\frac{k_i}{2}}\)。
于是 \(k_{i+1}=\frac{1}{2-k_i},b_{i+1}=\frac{b_i+2}{2-k_i}\)。
显然 \(k_0=b_0=1\),于是就可以求出所有的 \(f_i\) 了,答案即为 \(f_0\)。
接下来考虑原问题怎么做,注意到在根节点经过期望 \(f_0\) 次操作后会等概率随机到达一个链底,那么设 \(g_i\) 为当前在根节点且已经到达过 \(i\) 个链底时到达一个未到达过的链底所需操作次数的期望。
显然 \(g_i=\frac{i}{n}(2f_0+g_i)+\frac{n-i}{n}f_0\)。(\(f_0\) 也可表示从链底到根所需操作次数的期望)
\((1-\frac{i}{n})g_i=\frac{n+i}{n}f_0\)。
于是 \(g_i=\frac{(n+i)f_0}{n-i}\)。
最终答案即为 \(\sum_{i=0}^{n-1}g_i+(n-1)f_0\)。(前 \(n-1\) 次到达链底后还要回到根节点)

浙公网安备 33010602011771号