这个题和B的类型差不多,都算是dijkstra的变形,但是这个更难想一点。让dis[i]存储1到各点最短路径的最大值。之所以可以用dijkstra,是因为对于每一次只要选当前最大的dis[v],那么这个dis一定是到v的最短路径的最大值。因为如果这条边不是的话,那么就有dis[v]=min(dis[u],g[u][v]),但是因为dis[v]是当前dis中的最大值,所以dis[v]>dis[u],如果g[u][v]>dis[v],那么dis[v]=dis[v],否则dis[v]=g[u][v]<dis[v],因此dis[v]一定是所求解,这样就可以通过松弛策略不断的推进。策略是和dijkstra求最短路一样的,表示的意义不太一样。
1 #include 2 #include 3 #include 4 #include