poj 1386 有向图中的欧拉迹

问题描述
http://acm.pku.edu.cn/JudgeOnline/problem?id=1386
这个题题意是给你一组单词,要判断是否能够构成一个
首尾相接的单词链,例如给出如下单词:

3acmmalformmouse就可以构成 acm->malform->mous的单词链。

问题分析
这种题实际上就是判断有向图的欧拉迹的存在性。
什么是欧拉迹?就是一个图的所有边在迹中出现且只出现一次。通俗的说就是每条边只走一次把整个图遍历完。

这里要用到一个数学结论:如果一个有向图存在闭的欧拉图,那么所有的顶点的入度和出度相等,并且有向图是联通的。

 

为了证明它,先证明引理。
引理:如果一个有向图所有的顶点的入度和出度相等,那么有向图的任意一条边都属于一个闭迹。
证明:若任意一条边l的顶点为X0,X1.则总能通过下面的方法构造一个闭迹O
1)将边l并入迹O
2)取迹O的最后一个点Xm,若Xm等于X0,算法结束。否则总能找到一条边Li从Xm连向Xm+1.
现在问题归结为,若要证明该引理,就要证明总能找到一条边Li从Xm连向Xm+1.在迹X0到Xm之间,Xm的入度刚好比出度多一个,而已知中有向图的入度和出度相等,那么总能找到一条边Li从Xm连向Xm+1.所以得证。
注意以上证明中没有用到有向图是联通的这一条。

 

下面证明有向图中欧拉闭迹的存在性的证明。
向图中欧拉闭迹的存在当且仅当所有的顶点的入度和出度相等,并且有向图是联通的。
证明:
必要性显然。
充分性:
可以按照下方法构造欧拉闭迹。
1)若图中没有边了,停止。
2)否则任取图中一条边,让它从Xm连向Xm+1,其中Xm是已经删除的闭迹的一个顶点,按照引理可以构造一个闭迹,将该闭迹从图中删除,转到1)。
因为图是联通的,一定能找到边从Xm连向Xm+1,这些一次删除的闭迹可以构造成一个欧拉迹。

 

代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值