Description
- n 个点的有向完全图。
- i→j 的边每天出现的概率均为 pi,j,若 i=j,有 pi,j=1。
- 每天可以选择一条存在的出边走过去或停留在原地不动。
- 求最优策略下从 1 到 n 的期望天数。
- n≤103。
Solution
设 fi 表示 i 到 n 的期望天数。
假设 f 已经求出,那么 i 每次走到的下一步 j 一定是满足 i→j 这条边出现且 fj 最小的点。
容易发现如果 fj>fi 则 i 下一步无论如何不会走到 j。
所以可以得出转移方程:
fi=fj<fi∑pi,jfjfk<fj∏(1−pi,k)+fifj<fi∏(1−pi,j)+1
移项可得:
fi=1−∏fj<fi(1−pi,j)∑fj<fipi,jfj∏fk<fj(1−pi,k)
考虑已经确定了前 k 小的 f 值,如何求出第 k+1 小的编号。
注意到只考虑前 k 小的贡献,对于一个没确定的 i,再计算一个 fj<fi 对 i 贡献后 fi 一定不会变大,所以如果当前 fi<fj,则 i 一定不会在 j 后面,否则 fi 计算 fj 的贡献后只会更小,与 i 在 j 后矛盾。
所以第 k+1 小的编号就是只考虑前 k 小的贡献的没确定的位置里 f 值最小的编号。
时间复杂度:O(n2)。
Code