CF19E口胡

众所周知二分图是只有偶环的图。

要将一张无向图变为二分图就需要将其的所有奇环全部删掉。

所有当原图为二分图时,答案为整个边集,否则答案为所有奇环的交。

考虑先排除交为空的情况。使用染色法,若一条边的两个端点颜色相同的边的数量大于 \(1\),那么只删掉一条边显然不够。所以这种情况下答案为 \(0\)

剩下的情况是只有一条边连接了相同部分的两个点,所有包含这条边的环则是全部奇环。

建一颗一定包含这条边的 dfs 树,多余边中所将自身加上对应的路径所对应的集合若包含该边则是目标环集合。使用树上差分将这些边覆盖到链上然后判断即可。

至于一定包含这条边,把这条边当做根节点即可(

把这条边两边的子树设为 \(T1,T2\),那么只有端点不属于同一颗子树的多余边能被拉出来树上差分。

这样就保证了 LCA 一定是根节点。复杂度 \(O(n+m)\)

posted @ 2022-07-12 16:43  Prean  阅读(13)  评论(0编辑  收藏  举报
var canShowAdsense=function(){return !!0};