欧拉回路小结:hihocoder49,50,51

好久不做题了!!!

最近在hihocoder上写的欧拉回路,欧拉回路意思就是,n个城市,m条边,能否每条边只走一次,能把所有边走完。

感觉主要分两个部分搞,1:建图,找到合适的节点,合适的边。2:找欧拉回路,打印路径。关于第二点比较简单,用栈来实现就是先从一个节点出发,走到不能走为止,边走边删除走过的边,节点压进栈里,然后出栈,发现有节点仍然有边是,就压栈,出栈,最后路径就出来了,有向图的时候要把路径翻一下就好了。这个时候就是用dfs遍历一边就可以了,因为dfs正好是按照栈来的。

判断能不能构成欧拉回路的条件:无向图:最多只有两个节点度数不是偶数,那么这两个节点一定一个是初始节点,一个是结束节点。如果所有节点度数都是偶数,那么任意一个节点都课成为初始节点和结束节点。有向图:1:有一个点节点入度比出度多1,另一个节点入度比出度小1。2:所有节点入度都等于出度。

欧拉回路最难的地方应该就是建图了,等以后题目做多了再来总结这一块。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/hqwhqwhq/p/4811901.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值