描述 The city executive board in Lund wants to construct a sightseeing tour by bus in Lund, so that tourists can see every corner of the beautiful city. They want to construct the tour so that every street in the city is visited exactly once. The bus s…
有向连通图存在欧拉回路的充要条件是所有点入度=出度. 首先随便给定所有无向边一个方向(不妨直接是u->v方向),记录所有点的度(记:度=入度-出度). 这时如果有点的度不等于0,那么就不存在欧拉回路,就需要改变那些无向边的方向. 而改变一个无向边的方向,相当于边上两个端点的入度和出度都变化了1,它们的度±2. 另外,这样可以证明如果这时某个点的度为奇数那么一定不存在存在欧拉回路的解. 构图如下:所有无向边(u,v),建立容量为1的(u,v)边:所有度小于0的点u,建立容量为-deg/2的(vs,…
嗯,这是我上一篇文章说的那本宝典的第二题,我只想说,真TM是本宝典……做的我又痛苦又激动……(我感觉ACM的日常尽在这张表情中了) 题目链接:http://poj.org/problem?id=1637 Time Limit: 1000MS Memory Limit: 10000K Description The city executive board in Lund wants to construct a sightseeing tour by bus in Lund, so that t…
题目链接:http://poj.org/problem?id=1637 Sightseeing tour Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:10837   Accepted: 4560 Description The city executive board in Lund wants to construct a sightseeing tour by bus in Lund, so that tourist…
分析 混合图欧拉回路问题. 一个有向图有欧拉回路当且仅当图连通并且对于每个点,入度\(=\)出度. 入度和出度相等可以联想到(我也不知道是怎么联想到的)网络流除了源汇点均满足入流\(=\)出流.于是可以考虑先将无向边随意定向后,通过网络流来调整无向边的方向以达到每个点的入度和出度相等的目的. 建图方法如下: 若\(outdeg[x]>indeg[x]\),则从\(S\)向\(x\)连一条容量为\(\frac{outdeg[x]-indeg[x]}{2}\)的边. 若\(outdeg[x]<in…
[题目大意]混合图欧拉回路(1 <= N <= 200, 1 <= M <= 1000) [建模方法] 把该图的无向边随便定向,计算每个点的入度和出度.如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路.因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路. 好了,现在每个点入度和出度之差均为偶数.那么将这个偶数除以2,得x.也就是说,对于每一个点,只要将x条边改变方向(入>出就是变入,出>入就是变出),就能保证出=入.如果每个点都是出…
题目链接 题意 给出一个混合图(有无向边,也有有向边),问能否通过确定无向边的方向,使得该图形成欧拉回路. 思路 这是一道混合图欧拉回路的模板题. 一张图要满足有欧拉回路,必须满足每个点的度数为偶数. 对于这道题,我们先随便给无向边定个向.这时能够形成欧拉回路的必须条件就是每个点的入度和出度之差为偶数. 在满足了这个条件之后,我们通过网络流来判断是否可以形成欧拉回路. 下面用\(rd\)表示入度,\(cd\)表示出度. 首先对于入度小于出度的点,我们从\(S\)向这个点连一条权值为\((cd -…
http://poj.org/problem?id=1637 题意:给出n个点和m条边,这些边有些是单向边,有些是双向边,判断是否能构成欧拉回路. 思路: 构成有向图欧拉回路的要求是入度=出度,无向图的要求是所有顶点的度数为偶数. 但不管是那个,顶点的度数若是奇数,那都是不能构成的. 这道题目是非常典型的混合图欧拉回路问题,对于双向边,我们先随便定个向,然后就这样先记录好每个顶点的入度和出度. 如果有顶点的度数为奇数,可以直接得出结论,是不能构成欧拉回路的. 那么,如果都是偶数呢? 因为还会存在…
题目请戳这里 题目大意:求混合图欧拉回路. 题目分析:最大流.竟然用网络流求混合图的欧拉回路,涨姿势了啊啊.. 其实仔细一想也是那么回事.欧拉回路是遍历所有边一次又回到起点的回路.双向图只要每个点度数为偶数即可,有向图要保证所有点入度等于出度.求路径的话,dfs即可. 混合图的话,就比较复杂.首先将有向边定向,求出所有点的入度和出度,如果某个点入度和出度之差为奇数,则一定不存在欧拉回路,因为对于混合图,无向边可以任意指定方向,但是无论指定哪个方向,如果取反向的话,只会影响端点的一个出度和一个入度…
http://www.cnblogs.com/looker_acm/archive/2010/08/15/1799919.html /* ** 混合图欧拉回路 ** 只记录各定点的出度与入度之差,有向边无用丢弃,将无向边定向,在网络中建立流量为1的边 ** 另新建s和t.对于入 > 出的点u,连接边(u, t).容量为x,对于出 > 入的点v,连接边(s, v), ** 容量为x(注意对不同的点x不同).之后,察看是否有满流的分配,如果是满流则存在,否则不存在 */ #include <…