欧拉回路基础知识戳这里混合图:就是图里面有的边是有向边,有的边是无向边,组成的图叫做混合图。
要判混合图是否满足欧拉回路,首先必须满足欧拉图的条件
1:欧拉回路要求所有点的度数必须都为偶数,欧拉道路要求所有点的度数两个奇数。
2:给无向的边定向,首先任意定向,这些便之间网络流建边from到to容量为1,然后对于当前入度大于出度的点y,说明有d = (入度-出度)/2的边需要变成相反方向,我们这...
分类:
其他好文 时间:
2015-04-23 21:49:36
阅读次数:
259
欧拉回路+dfs任意两点之间都有连通,要输出经过所有给出的边的最小时间要使经过所有所给边的时间最小,一定不会将一个边走过两次,这样就变成了构造一个欧拉道路的问题,输入也许有多个连通块,所以每个连通块都要构造成一个欧拉道路(回路),通过度数统计需要增加的边,再加上连接不同连通快的边,再加上所给出的边就...
分类:
其他好文 时间:
2015-04-21 00:01:31
阅读次数:
177
欧拉回路
欧拉回路是指在一个图G中,从起点s出发,不重复地经过所有边后又返回到起点s的一条路径。同样还有关于欧拉道路的定义,不过起点和终点不一定重合,但都是不重复地经过图中的每一条边。
判断一个图中是否存在欧拉回路(道路)通过以下条件来判断:
(1)如果图G是一个无向图,那么度数为奇数的点不能超过两个,且这两个点其中一个作为起点,另一个作为终点。如果度数均为偶数,那么所有点均可以作为起点或终...
分类:
编程语言 时间:
2015-04-09 08:53:03
阅读次数:
187
1.题目描述:点击打开链接
2.解题思路:本题利用DFS和欧拉道路解决。本题其实要求找一些路径,使得和要求经过的那些路径能够组成欧拉道路(注意不是欧拉回路,“欧拉道路”是指除了起点和终点外,路径上的其他点的入度等于出度的道路)。首先用dfs来判断连通性,这里用dfs还有另外一个原因就是要统计度数为奇数的点的个数,因为这样的点都需要额外添加一条道路使其度数变为偶数,符合欧拉道路的要求。由于添加一条...
分类:
其他好文 时间:
2015-04-02 09:10:30
阅读次数:
173
题意:给出n个单词,问这n个单词能否首尾接龙,即能否构成欧拉道路按照紫书上的思路:用并查集来做,取每一个单词的第一个字母,和最后一个字母进行并查集的操作但这道题目是欧拉道路(下面摘自http://blog.csdn.net/hcbbt/article/details/9316301)关于欧拉道路(f...
分类:
其他好文 时间:
2015-03-16 00:56:32
阅读次数:
198
/**
欧拉道路
1>.有向图忽略方向得到的无向图 是不是连通
2>.所有点的入度等于出度 或者 只有两个点的入度不等于出度,且一个入度比出度大一,另一个入度比出度小一
*/
#include
#include
#include
using namespace std;
int r[30];
int find_(int x)
{
while(x!=r[x])
x=r[x...
分类:
其他好文 时间:
2015-02-13 01:37:40
阅读次数:
218
数据结构基础
UVa 10004 二染色:二部图的判定。(bfs或dfs遍历的过程进行染色,看是否有冲突)UVa 10129 单词:有向图的欧拉道路。UVa 10054 项链:无向图的欧拉回路,首尾相接输出路径。UVa 10596 清晨漫步:无向图的欧拉回路。(对于欧拉道路或回路,在判断连通性等时注意先 if 下要访问的顶点是否出现。)...
分类:
编程语言 时间:
2015-02-04 14:42:37
阅读次数:
350
题意:给定一些单词,单词的尾字母和另一单词的首字母相同,则可以串联,问是否可以将所有的单词串联。单词可重复出现,但每个单词只能用一次;即某单词重复几次,则可用几次。
思路:欧拉道路的应用。欧拉道路,即“一笔画”,从图中一结点出发走一条道路,每条边恰好经过一次。
首先要判断图是连通的。
对于无向图,最多只有两个奇点(度数为奇数)。且从一奇点出发,...
分类:
其他好文 时间:
2015-02-01 01:53:50
阅读次数:
177
UVA 10441 - Catenyms
题目链接
题意:给定一些单词,求拼接起来,字典序最小的,注意这里的字典序为一个个单词比过去,并不是一个个字母
思路:欧拉回路,利用并查集判联通,然后欧拉道路判定,最后dfs输出路径
代码:
#include
#include
#include
#include
#include
#include
using nam...
分类:
其他好文 时间:
2014-08-28 00:59:48
阅读次数:
236
HDU 4850 Wow! Such String!
题目链接
题意:求50W内的字符串,要求长度大于等于4的子串,只出现一次
思路:需要推理,考虑4个字母的字符串,一共有26^4种,这些由这些字符串,如果一个字符串末尾加上一个字符,可以变成另一个字符串的话,就当作这有一条边,每多一个字符多一个结点,那么对于这道题目,一共就能有26^4 + 3条边,在加上尾巴可以多放3个,一共是...
分类:
其他好文 时间:
2014-07-09 09:53:06
阅读次数:
180