一笔画问题

我们知道欧拉环路定理:

如果一个图每个点的度数都是偶数,则可以存在一条欧拉环路。

道理不复杂,对于偶数度顶点,因为度数为偶数,所以,进入一个结点必然存在一条出该结点的路,这样我们肯定可以找到一种方法遍历所有的边

一笔画问题可以简单点说是:

如果一个图每个点的度数都是偶数,或奇数度顶点的个数有且只有两个,则存在一笔画的方法。

显然不可能存在更多的奇数度顶点,否则图中经过的奇数度顶点,没法再次到达。

所以一笔画问题的结论:

(1)如果每个顶点的度数为偶数,那么存在一个欧拉环

(2)如果有两个奇数度顶点,则这两个奇数度顶点一个为起始点、一个为终止点。

(3)如果奇数度顶点>2,则无解。

所以说,如果图都是偶数度顶点,则可以用找欧拉环问题的方法求解。

如果图的顶点中有两个奇数度顶点a、b,也不麻烦,我们人为添加一条a->b的边,这样图就变成了所有点的度数都是偶数的图。用找欧拉环的方式求解,这一条从a->a的欧拉环路,再加上之前搜索的a->b的通路即为所求。

posted @ 2016-11-18 11:52  zhazhalovecoding  阅读(441)  评论(0编辑  收藏  举报