[USACO07NOV] Cow Relays G

[USACO07NOV] Cow Relays G

设点数为 \(n\).

设矩阵 \(G_{i,j}\) 表示边 \(i\to j\) 的边权,若没有此边则值为 \(\infty\).

设矩阵 \(A_{k,u}\) 表示从 \(S\) 出发走 \(k\) 步到 \(u\) 的最短路.

\[A_{0,S}=0 \]

\[\forall\,i\neq S,\; A_{0,i}=\infty \]

定义广义矩阵乘法为:

\[(A\times B)_{i,j}=\min_{k}A_{i,k}+B_{k,j} \]

那么

\[\begin{pmatrix} G_{1,1} & G_{1,2} & \cdots & G_{1,n} \\ G_{2,1} & G_{2,2} & \cdots & G_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ G_{n,1} & G_{n,2} & \cdots & G_{n,n} \end{pmatrix} \begin{pmatrix} A_{k,1} & A_{k,2} & \cdots & A_{k,n} \end{pmatrix} = \begin{pmatrix} A_{k+1,1} & A_{k+1,2} & \cdots & A_{k+1,n} \end{pmatrix} \]

矩阵快速幂即可. 时间复杂度

\[O\!\left(n^3\log N\right) \]

posted on 2026-07-30 15:52  吴一鸣  阅读(12)  评论(0)    收藏  举报

导航