2019湖南省赛H题——概率转移&&逆矩阵

题意

题目链接

Bobo有一个 $n+m$ 个节点的有向图,编号分别为 $1 \sim n$,他还有一个 $n$ 行 $n+m$ 列的矩阵 $P$。

如果在 $t$ 时刻他位于节点 $u(1 \leq u \leq n)$,那么在 $(t+1)$ 时刻他在节点 $v$ 的概率为 $P_{u,v}/10000$;

如果在 $t$ 时刻它位于节点 $u(u > n)$,那么在 $(t+1)$ 时刻他在节点$u$ 的概率是1.

0时刻Bobo位于节点1,求无穷久之后,它位于节点 $(n+1), (n+2), ..., (n+m)$ 的概率。

分析

求无穷久的情况,要么进入循环,要么像等比数列求和一样收敛于某个数,总不可能一步一步模拟吧。

套路一波,用向量 $D_i = (d_1, d_2, ...,d_{n+m})$ 表示移动 $i$ 次之后在各个点的概率。

易知,$d_1 = d_1*P_{1,1} + d_2*P_{2,1} + ..+ d_{n+m}*P_{n+m, 1}$,同理可得 $d_2, d_3,..,d_{n+m}$,这样的转移可以写成矩阵的形式

将输出的 $n$ 行 $n+m$ 列,根据题意,可在左下补上全0,右下补上单位矩阵,得到矩阵 $X$,

则 $D_n = D_{n-1}*X, \ D_1=(1, 0, 0,..., 0)$.

即 $D_n = D_0 * X^n$.

由分块矩阵的知识,将 $X$ 写成4个子矩阵:左上角(n * n)部分为A,右上角(n * m)部分为B,左下角(m * n)部分是零矩阵,右下角(m * m)部分为单位矩阵E:

$$x = \begin{bmatrix}
A & B\\
0 & E
\end{bmatrix}$$

算一下容易发现:

$$x^n = \begin{bmatrix}
A^n & (B+AB+...+A^{n-1}B)\\
0 & E
\end{bmatrix}$$

当 $n$趋于无穷大时,结合实际意义,$A^n=0$.

根据等比数列的求和公式,得到:

$$B+AB+...+A^{n-1}B = \frac{E-A^n}{E-A}*B$$

因为 $n$ 趋于无穷,所以

$$\frac{E-A^n}{E-A}*B = \frac{E}{E-A} *B = (E-A)^{-1}*B$$

利用高斯消元,O(n^3)复杂度得到该逆矩阵。

这样就求出了 $n$ 取余无穷大时 $X^n$ 的值,与 $D_0$ 相乘,就得到了答案。

参考链接:https://blog.csdn.net/qq_43202683/article/details/100170570

猜你喜欢

转载自www.cnblogs.com/lfri/p/11628553.html