题目链接:https://ac.nowcoder.com/acm/contest/272/D
根据最小生成树的构造方法可以知道,当最小生成树不唯一时,可以用某一条边替换树上相同权值的边。
考虑kruskal算法,我们按照相同的边进行分组,每次处理一个组,并把这组边加到之前已经处理好的连通块上后跑tarjan求桥。在这个组里如果有某条边是桥,那么这条边一定是会选中的就可以计数,之后清理一下标记就可以了。
1 |
|
Keep going
题目链接:https://ac.nowcoder.com/acm/contest/272/D
根据最小生成树的构造方法可以知道,当最小生成树不唯一时,可以用某一条边替换树上相同权值的边。
考虑kruskal算法,我们按照相同的边进行分组,每次处理一个组,并把这组边加到之前已经处理好的连通块上后跑tarjan求桥。在这个组里如果有某条边是桥,那么这条边一定是会选中的就可以计数,之后清理一下标记就可以了。
1 | #include <bits/stdc++.h> |