码迷,mamicode.com
首页 > 其他好文 > 详细

在二分图上加一条边与其逆问题

时间:2018-04-05 23:09:18      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:bsp   时间复杂度   post   复杂   定义   二分图   联通   情况   说明   

二分图定义:https://en.wikipedia.org/wiki/Bipartite_graph

考虑正问题,二分图的一个充要条件是图中所有的环都是偶环 * 。

  从而加的边只能形成一个偶环,我们可以将二分图黑白染色,分为两个集合,这样合法边只有两种

    1.横跨两个联通快的边。

    2.在一个联通块且两个端点异色的边。

  这显然是正确的,求有多少个这样的边,分上面两种情况进行分类即可,时间复杂度 O(n)。

接下来考虑逆问题,如何在图上删除一条边使得这个图变成二分图。

  如果这个图本来就是二分图,删一条边不会使得 * 性质消失,从而任意删一条边即可。

  而如果这个图本来不是二分图,那么同理必然存在至少一个奇环,我删的边必然要在这些奇环的交上。

  考虑将这个图dfs出一棵树,进行黑白染色,对于所有的非树边,如果接在同色点上,(记作error边),说明这条边是在一条奇环上面

    1.删非树边,如果这样的边只有一个,那么说明只要我们删去这条边显然可行,而如果有多个的话,此策略显然不能找出任何一条合法边。

    2.删树边,首先由上面的结论知,删的边必然要在,所有error边两个端点的树上路径交上。除此之外,我们可以发现一个奇环与一个与之有交的偶环也会形成一个奇环,所以我们删的树边显然不能在某个非error树边两个端点的树上路径上,不然无法消除此非error树边与其他奇环构成的奇环。

  综上,考虑树上差分将路径加改为子树加,并且应用dfs序即可。

 

    

在二分图上加一条边与其逆问题

标签:bsp   时间复杂度   post   复杂   定义   二分图   联通   情况   说明   

原文地址:https://www.cnblogs.com/allvphx/p/8724568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!