Codeforces 1005F
题意:给你一个$n$个点$m$条边的无向图,要你选出$n-1$条边。你要在其中找到$k$种方案使得图连通并且 1 点到所有其他点距离之和最短。不足 $k$ 种就输出所有方案。
本题运用了最短路树的知识,最短路树就是一个点到其他点最短路的边组成的树。这个树可能有很多个。构造树的方法就是用最短路算法松弛时如果发现最短路相等,那么这里就有两条边可选进最短路树。
这里边权都是1,直接 BFS 。然后 DFS 每个点选一条边进最短路树即可,注意这里可能数组开不下,vector.resize()
就排上用场了。
知识点:
1 求最短路树长度相等时不要再入队, 否则计数会有重边
2 要记得删除调试输出
3 vector.resize()
的绝妙之处