碰到了一个有趣的面试题。
给定一个图,有边权和点权。
让求任意两点间最短路:边权和+路径最大点权。
分析:如果枚举最大点权的话,那么每次对于枚举的最大点权建图,跑Floyd就好了。但是这样显然并不好。
考虑某个点作为路径中的点。那么显然比他小的点都在图中。然后只需要求该点到任意点的最短路。那么通过这个点,并且以这个点作为最大点权的最短路距离就都求出来了。于是。
答案:枚举每个点作为起点,通过本点点权限制图作为一个新图,求单源最短路。更新任意两点间距离的答案。
代码就不写了。比较容易写。