CF605E Intergalaxy Trips 题解

Description

  • nn 个点的有向完全图。
  • iji \to j 的边每天出现的概率均为 pi,jp_{i,j},若 i=ji = j,有 pi,j=1p_{i,j} = 1
  • 每天可以选择一条存在的出边走过去或停留在原地不动。
  • 求最优策略下从 11nn 的期望天数。
  • n103n \le 10^3

Solution

fif_i 表示 iinn 的期望天数。

假设 ff 已经求出,那么 ii 每次走到的下一步 jj 一定是满足 iji\to j 这条边出现且 fjf_j 最小的点。

容易发现如果 fj>fif_j>f_iii 下一步无论如何不会走到 jj

所以可以得出转移方程:

fi=fj<fipi,jfjfk<fj(1pi,k)+fifj<fi(1pi,j)+1f_i=\sum_{f_j<f_i}p_{i,j}f_j\prod_{f_k<f_j}(1-p_{i,k})+f_i\prod_{f_j<f_i}(1-p_{i,j})+1

移项可得:

fi=fj<fipi,jfjfk<fj(1pi,k)1fj<fi(1pi,j)f_i=\frac{\sum_{f_j<f_i}p_{i,j}f_j\prod_{f_k<f_j}{(1-p_{i,k})}}{1-\prod_{f_j<f_i}(1-p_{i,j})}

考虑已经确定了前 kk 小的 ff 值,如何求出第 k+1k+1 小的编号。

注意到只考虑前 kk 小的贡献,对于一个没确定的 ii,再计算一个 fj<fif_j<f_iii 贡献后 fif_i 一定不会变大,所以如果当前 fi<fjf_i<f_j,则 ii 一定不会在 jj 后面,否则 fif_i 计算 fjf_j 的贡献后只会更小,与 iijj 后矛盾。

所以第 k+1k+1 小的编号就是只考虑前 kk 小的贡献的没确定的位置里 ff 值最小的编号。

时间复杂度:O(n2)O(n^2)

Code

1


CF605E Intergalaxy Trips 题解
https://sobaliuziao.github.io/2024/07/27/post/1a4a19b1.html
作者
Egg_laying_master
发布于
2024年7月27日
许可协议