题目既然是带权图,两点最短距离不一定是邻边,有可能要经过其他点
假如4-5的最短距离要经过2,拿掉2之后4-5的最短距离会变化
看到一种精简写法,每拿掉一点,对剩下图用floyd刷新一次统计一次,是暴力计算,总复杂度达到O(n^4)
此题为动态图,每加一次点,只需Dij(k)一次O(n^2),再以k为中间点刷新一次O(n^2),加n-1个点,总复杂度O(n^3)
初始集合为元素n,集合依次加入n-1,n-2,...,2
元素k加入集合时,Dij(k)更新k到k+1,...,n的最短距离并求和
再更新原集合{k+1...