AT_arc083_b [ABC074D] Restoring Road Network 题解

Posted on 2024-03-02 17:20  _XOFqwq  阅读(7)  评论(0编辑  收藏  举报

难度虚高,建议评橙 / 黄 qwq。

首先我们发现这是一道最短路问题,且 \(N \le 300\),于是采取 floyd 算法解决。

具体地,我们分情况分类讨论。令我们当前枚举到的最短路径起点为 \(i\),终点为 \(j\),中转点为 \(k\),输入的矩阵为 \(dis\)

  • \(dis_{i,j}>dis_{i,k}+dis_{k,j}\),则一定无解;

  • \(dis_{i,j}=dis_{i,k}+dis_{k,j}\),则说明 \(i,j\) 最短路无需更新,对答案没有贡献,进行标记;

最后遍历整个 \(dis\) 数组,若某条 \(i,j\) 最短路未被标记,则令答案累加 \(dis_{i,j}\) 即可。

时间复杂度 \(O(n^3)\)