原文链接: poj2230 dfs 欧拉回路
上一篇: 基础算法
下一篇: POJ 3977 折半枚举+二分搜索
题意 :对一有向欧拉图,求欧拉回路,即从点s出发,最终到达点s,每条边走且仅走一次。
分析 :对欧拉有向图,从点s开始深搜,直到到达点t,而且不能继续向下走为止,则s=t。为什么?用反证法可以证明。假设s!=t,则存在下面这种路线(注意每个点要出现两次):s->......->s->......->t,即s的入度为1,而出度为2,这与有向欧拉图的性质相违背,因此假设不成立。注意建图的时候要变单向为双向,否则没法做。
补充 :有向连通图D是欧拉图,当且仅当该图为连通图且D中每个结点的入度=出度
无向连通图G是欧拉图,当且仅当G不含奇数度结点(G的所有结点度数为偶数)
定理:如果一个有向图所有顶点的入度等于出度,则该有向图存在欧拉回路