题面:
题意:
给定一张n个点的完全图,求删除 k 条边之后最短路的最大值,其中边权随机。
其中 n ≤ 50 , k ≤ m i n ( n − 2 , 5 ) n\le50,k\le min(n-2,5) n≤50,k≤min(n−2,5)
题解:
边权随机的情况下,最短路的边数很少。
所以只要每次跑一下最短路,抓一条最短路出来,枚举删除最短路上的哪条边,然后递归,变成删
除 (k − 1) 条边的子问题。每次要删除的边一定在当前最短路上,要不然最短路不会变长。
重复这过程直到 k = 0,然后再跑一次 1 到 n 最短路,把结果取 max 即可。
复杂度 O ( n 2 ∗ c k ) O(n^2 ∗ c^k ) O(n2∗ck), c c c 为最短路边数。
d i j dij dij求最短路朴素求法是 O ( n 2 ) O(n^2) O(n