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

Posted allvphx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在二分图上加一条边与其逆问题相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

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

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

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

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

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

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

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

 

    

以上是关于在二分图上加一条边与其逆问题的主要内容,如果未能解决你的问题,请参考以下文章

图论之二分图

二分图

题解 CF813F Bipartite Checking

CODEVS1922 骑士共存问题

HDU 6346 整数规划 二分图匹配最优解

二分图