描述
给定一个n
个点,m
条边, 用邻接表表示的无向连通图. 每个点i
都和点1
有一个最短距离.
现在需要删去一些边,让剩余的边数最多为k
,并且让尽量多的到节点1
的最短距离保持不变.
给定的边编号1~m
,找到最佳删边方案,打印保留的边的编号.
思路
dijkstra
长时间不写还给WA了几发… 直接从起点1
开始遍历最短路, 把找到的前min(n-1, k)
条unique的边加入结果.
代码
1 | import collections |
给定一个n
个点,m
条边, 用邻接表表示的无向连通图. 每个点i
都和点1
有一个最短距离.
现在需要删去一些边,让剩余的边数最多为k
,并且让尽量多的到节点1
的最短距离保持不变.
给定的边编号1~m
,找到最佳删边方案,打印保留的边的编号.
dijkstra
长时间不写还给WA了几发… 直接从起点1
开始遍历最短路, 把找到的前min(n-1, k)
条unique的边加入结果.
1 | import collections |