codeforces 160D - Edges in MST

来源:互联网 发布:免费备案域名 编辑:程序博客网 时间:2024/04/29 22:43

题目大意:给定一个10万个点的无向图,求出任意一条边是在3种属性,(1)存在于任意一个mst上 (2)存在至少一个mst上 (3)不存在任意一个mst上。

发现不写题解不长记性啊

仔细分析后发现,如果按照最小生成树的解法,先把边按照边权进行排序,那么这个时候,如果这个边不是存在于所有的mst上面,等价的条件就是和他长度相等的那些边可以和他进行互换。

(1)将边按照边权进行排序,一次取出所有长度一样的边进行处理

(2)如果一条边的两个顶点发现已经是一个集合了,那么肯定是没法互换了,因为要保证最小,把剩下的边取出。

(3)剩下的边进行双连通,求出桥,可以证明桥就是存在于任意一个mst上,其他非桥边存在于至少一个mst上面。

原创粉丝点击