POJ 1637 浅谈混合图欧拉回路网络流建模

本文探讨了如何利用网络流解决POJ 1637问题,涉及欧拉回路和图论的基础知识。通过分析每个点的出入度,构建网络流模型,调整无向边方向,确保所有点的出入度相等,从而找到欧拉回路。文章介绍了初步建模和进一步调整的策略,并给出了 Dinic 算法的应用,以判断是否存在满足条件的欧拉回路。
摘要由CSDN通过智能技术生成

这里写图片描述
世界真的很大
欧拉是个厉害的人
从数论到图论,欧拉函数到欧拉回路
欧拉回路好像是他在意大利的什么地方有7个岛搞出来的
但是这道题的解法和欧拉关系不大了,是网络流
所以说网络流也是一个神奇东西
先看一下题:
description:

给定一张有向边和无向边构成的混合图。求给其中的无向边给定方向是否能使其含有一条欧拉回路

input

一个数字T表示数据组数
每组数据第一行包含2个整数n,m,表示点数和边数
接下来m行,每行包括3个整数u,v,mrk,表示u,v之间有一条边,0是无向边,1是有向边

output

每组数据输出impossible或possible表示数据有无解

思路比较不好想
有大佬有更厉害的做法
但我就只知道听了老师的一知半解地yy了
首先要明白欧拉回路的充要条件,即充分,必要,就是每个点的出度等于入度
通过给出的有向边,我们能知道每个点的出入度情况,不妨把所有无向边都假设为有向边,统计一次出入度
必然有某些点的出度不等于入度的情况
可以通过更改某些无向边的方向来调整,如果使一条无向边的方向反过来,即某个点的出度会+1,入度会-1,所以如果统计下来某个点的出入度之差是奇数,那就不可能调整为出入度相等了,就肯定没有欧拉回路了
在所有点的出入度之差都为偶数的情况下,如果一个点的入度大于出度,就好像有些边进来了,却没有出去,即这个点需要流出边,流出边的数量正好是出入度之差的一半
同理有些点的出度大于入度,相当于流入的边不够流出,就需要流入,需要流入的边的数量正好是出入度之差的一半
初步建模就完成了,源点向所有入度大于出度的点连边,权值为其出入度之差的一半,代表有这么多的边需要流出
所有出度大于入度的点向汇点连边,权值为其出入度之差的一半,相当于有这么多的边需要流入
那么现在需要考虑进一步的调整问题了
对于一条本来是无向边的边(u,v),我们强行假设了这是一条有向边,从u到v,那换句话说只要(u,v)反向,就能使u的出度减少,入度增加;v的出度增加,入度减少。
换个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值