#8. 随机路径期望
随机路径期望
题意:
给定一张包含 个点、 条有向边的有向无环图(DAG)。每条边均有一个非负整数边权,并指定一个终点 。
保证从任意节点出发,都至少存在一条有向路径能够到达终点 。
每个节点具有一个状态,由长度为 的 字符串 给出,其中 表示节点 的状态。
旅行者当前位于节点 时,根据 按照以下规则选择一条出边:
- 若 ,旅行者从节点 的所有出边中等概率随机选择一条。
- 若 ,旅行者从所有 的最短路径中等概率随机选择一条,并沿该路径的第一条边移动。
更具体地,设从 到 的最短路径共有 条。对于一条具体的出边 ,设以边 作为第一条边的 最短路径共有 条,则选择边 的概率为
若一条出边不属于任何 的最短路径,则其被选择的概率为 。
路径按照经过的边序列区分,因此即使存在端点相同的多条边,它们也视为不同的边。
旅行者沿一条权值为 的边移动时,本次移动产生 的距离。一旦到达终点 ,移动立即结束。特别地,从 出发到达 的期望总距离为 。
对于每个节点 ,求从节点 出发最终到达终点 时,所经过边的权值之和的期望值。
答案对 取模。
对于有理数 ,其模 的值定义为
其中 表示 在模 意义下的乘法逆元。
输入格式:
第一行输入三个整数 (,,),分别表示节点数、边数和终点编号。
第二行输入一个长度为 的字符串 (,),其中 表示节点 的状态。
接下来 行,每行输入三个整数 (,),表示一条从节点 指向节点 、边权为 的有向边。
保证给出的图为有向无环图,并且每个节点都至少存在一条到达终点 的有向路径。
对于所有满足 且 的节点 ,保证从 到 的最短路径条数 不被 整除。
输出格式:
输出一行 个整数,第 个整数表示从节点 出发到达终点 时,经过边的权值之和的期望值对 取模后的结果。
样例:
样例输入:
5 6 5
10110
1 2 1
1 3 2
2 4 1
2 5 2
3 5 1
4 5 1
样例输出:
3 2 1 1 0
样例解释:
记从节点 出发到达终点 的期望总距离为 。
节点 为终点,因此 。
节点 的状态为 1,且只有一条出边 ,边权为 ,因此 。
节点 的状态为 1,且只有一条出边 ,边权为 ,因此 。
节点 的状态为 0。
它有两条出边:
- ,边权为 ;
- ,边权为 。
由于 ,旅行者会等概率选择一条出边,因此 $\displaystyle E_2=\frac{1}{2}(1+E_4)+\frac{1}{2}(2+E_5)$。
代入 ,得到 $\displaystyle E_2=\frac{1}{2}\times2+\frac{1}{2}\times2=2$。
节点 的状态为 1。
从节点 到终点 的路径共有:
- ,总边权为 ;
- ,总边权为 ;
- ,总边权为 。
三条路径的长度均为 ,因此它们全部都是从节点 到终点 的最短路径。
其中:
- 有 条最短路径以边 作为第一条边;
- 有 条最短路径以边 作为第一条边。
因此,旅行者选择边 和 的概率分别为 和 。
于是 $\displaystyle E_1=\frac{2}{3}(1+E_2)+\frac{1}{3}(2+E_3)$。
代入 ,得到 $\displaystyle E_1=\frac{2}{3}\times3+\frac{1}{3}\times3=3$。
因此各节点的期望总距离依次为 。