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)\)。