BFS树&DFS树

ps:接下来讨论的都是无向图。

BFS树

定义

用BFS遍历一张图时得到的树,可能存在非树边。

性质

非树边只会存在于同层或相邻两层。

作用

可以将图分层,比较经典的应用是Dinic刷最大流。
其他有什么用啊?不知道啊好像没啥用了

DFS树

定义

用DFS遍历一张图时得到的树,可能存在非树边。

性质

非树边只会连向祖先,不会出现一棵子树连向另一棵子树的情况,因为这违反DFS的规则,如图:
BFS树&DFS树_第1张图片

非树边-环

我们会发现,DFS中出现的非树边意味着一个简单环的出现。经典题:HDU5215。
这道题就是让你判断是否存在奇环和偶环。通过二分图染色我们可以判断出奇环,同时可以判断部分偶环,但遗漏了两个奇环叠加起来变为一个偶环的情况。所以我们再给每个点 x 记录 ti[x] 表示 x 被几个奇环覆盖。那么如果存在 ti[x]>1 就说明存在偶环,用差分的思想就可以快速求出 ti[x] 了。

仙人掌判定

仙人掌的定义是:一个无向连通图,任意一条边至多只存在于一个简单环中。
好像有种判定方法是缩点,但实际上DFS树方便多了,而且还好理解 (反正我也不会缩点)
我们考虑树边,如果一个树边被两个环覆盖了,该图就显然不是仙人掌了。再套差分记录 ti 就判定好了,非常方便(非树边不需要考虑,因为如果连非树边都被两个环覆盖了,肯定存在树边被两个环覆盖了)。

Xor

任何一个环可以由若干非树边对应的环异或起来,一条路径可以由任意一条和若干个环异或起来。这不仅仅可以处理权值异或,只要是非简单路这都可以搞。——by Manchery
经常会扯到线性基,但是我不会啊QAQ,以后再填坑。

选最少的边使节点度数满足题目给出的奇偶性

首先我们知道一张图所有点度数奇偶性的异或和必定为0(这意味着奇度点一定是偶数个),那么这就是有解的必要条件,但不知道是不是充要条件。如果我们能想办法求出一个解,就可以说明这是充要条件了。
实际上是可以构造的:选出一颗生成树,那么一个点的奇偶性可以根据他与父亲的那条边进行调整,由于奇度点是偶数个,所以根节点即使不能调整也一定满足。

你可能感兴趣的:(DFS树)