一般我们的最大流算法解决的是最优化问题。即通过某种构图方法,使得最大流的流量即为我们所要求的的最大值。但是,一类判定性问题也需要通过网络流模型来解决。经典的问题有:混合图的欧拉回路,等等。这类问题往往通过构建一个网络图,计算出其最大流,然后根据判断最大流是否满足某种条件来判断。当然,二分答案的时候也...
分类:
其他好文 时间:
2015-07-06 12:01:09
阅读次数:
120
题意:给出n个单词,问这些单词能否首尾相连组成一个整体,其中部分单词可以翻转。
思路:将每个单词的首尾字母看成结点,每个单词看成一条边,可以看出这是一张混合图,要求判断是否有欧拉路。使用判断欧来回路的方法,如果存在欧拉回路那么就一定存在欧拉路了;否则如果有且仅有两个点的(出度-入度)是奇数,那么给这两个点加边,判断是否存在欧拉回路。注意这一题要判断图的连通性。...
分类:
其他好文 时间:
2015-05-13 10:33:56
阅读次数:
171
对于有向图和无向图的欧拉回路判定,很容易做到.那对于混合图呢?? 混合图就是图中既存在无向边又存在有向边的图. 至于解法: 转载自这里 把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,也就是总度数为偶...
分类:
其他好文 时间:
2015-05-12 00:01:03
阅读次数:
293
题意:求混合图是否有欧拉回路。
思路:首先是基图联通(不考虑度为0的点),然后需要借助网络流来判断。
首先给原图中的无向边随便指定一个方向(初始定向),将原图改为有向图G’,然后的任务就是改变G'中某些边得方向(当然是无向边转化来的,原 有向边不变)使其满足每个点的入度等于出度。
设d[i]为G'中(点i的出度-点i的入度)。可知,在改变G'中边的方向时,任何点的d值的奇偶性都不会变(设将边改为,则i的入度加1出度减1,j的入度减1出度加1,两者之差加2或减2,奇偶性不变)!而最终要...
分类:
其他好文 时间:
2015-02-24 09:12:26
阅读次数:
147
题意:给出一个图,有的边是有向边,有的是无向边。试找出一条欧拉回路。分析:按照往常的思维,遇到混合图,我们一般会把无向边拆成两条方向相反的有向边。但是在这里却行不通了,因为拆成两条有向边的话,就表示这个边能“在两个相反方向各经过一次”。而题意是这个边只能经过一次。假设图中存在欧拉回路,则所有点的出度...
分类:
其他好文 时间:
2015-02-20 11:54:45
阅读次数:
166
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-12
#define INF 0x7fffffff
#define maxn 22222
using namespace std;
int n,m;
int en;
int st,ed...
分类:
其他好文 时间:
2014-09-26 22:28:09
阅读次数:
258
混合图的欧拉回路问题
题目地址
欧拉回路问题
1 定义
欧拉通路 (Euler tour)——通过图中每条边一次且仅一次,并且过每一顶点的通路。
欧拉回路 (Euler circuit)——通过图中每条边一次且仅一次,并且过每一顶点的回路。
欧拉图——存在欧拉回路的图。
2 无向图是否具有欧拉通路或回路的判定
G有欧拉通路的充分必要条件为:G 连通,...
分类:
其他好文 时间:
2014-08-03 18:02:45
阅读次数:
231
题目链接建个图,套个模板。#include #include #include
#include #include #include #include #include using namespace std;#define INF
0x3ffffffstruct node{ int u,v,...
分类:
其他好文 时间:
2014-05-07 21:21:36
阅读次数:
396