---恢复内容开始--- 把它看成是一个图 只是需要欧拉路径就可以了 首尾能连成一条线即可 如果要判断这个图是否连通 得用并查集 在hrbust oj里面看答案学到的方法 不用各种for循环套着判断能否循环 只需要在union的时候做做调整 让比较大的父亲节点的父亲节点等于小的父亲节点 向1靠拢就可
分类:
其他好文 时间:
2016-02-14 06:50:10
阅读次数:
183
支持多重边,按字典序输出。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) using namespace std; typedef long
分类:
编程语言 时间:
2016-02-13 17:08:13
阅读次数:
243
欧拉路的相关概念: 1.能从无向图中的一个顶点出发,并走出一条道路,每条边恰好经过一次,这样的路线就叫做欧拉路; 2.找欧拉路首先要判断是否存在欧拉路: 一个无向图存在欧拉路当且仅当该图是连通的,且有且只有0或2个点的度数是奇数,为2时这两个点只能作为欧拉路径的起点和终点(0个时称为欧拉回路)。 3...
分类:
其他好文 时间:
2016-02-03 22:30:04
阅读次数:
152
n位密码,要用尽可能短的序列将n位密码的10n种状态的子串都包括,那么要尽量地重合。题目已经说最短的是10n+ n - 1,即每一个状态的后n-1位都和序列中后一个状态的前n-1位重合。这题是经典的欧拉路径问题吧,用n位数字10n种状态来作为边,而用重合的n-1位数字表示点。具体的建图,每个点都引出...
分类:
其他好文 时间:
2016-01-08 20:11:56
阅读次数:
137
/*poj2337之有向图欧拉路径输出 每个单词看作一条有向边,顶点即为单词首尾字母,然后求欧拉路径即可。 1)为保证字典序,先对单词按字典序排序2)深搜,输出单词序列*/ 1 #include 2 #include 3 #include 4 #include 5 #include...
分类:
其他好文 时间:
2016-01-06 01:39:21
阅读次数:
371
求欧拉路径...直接dfs即可,时间复杂度O(N)---------------------------------------------------------------------------#include#include#include#includeusing namespace st...
分类:
其他好文 时间:
2015-12-16 21:33:24
阅读次数:
262
只和连通分量以及度数有关。不同连通分量只要连一条边就够了,连通分量为0的时候要特判。一个连通分量只需看度数为奇的点的数量,两个端点是必要的。如果多了,奇点数也一定是2的倍数(一条边增加两个度数,总度数是偶数),把多余的成对奇点连边,一定存在一条欧拉路径。并查集维护或者dfs都可以。/********...
分类:
其他好文 时间:
2015-11-12 01:14:36
阅读次数:
313
CatenymsDescriptionA catenym is a pair of words separated by a period such that the last letter of the first word is the same as the last letter of th...
分类:
其他好文 时间:
2015-10-31 18:35:20
阅读次数:
249
每个单词可以看做一条边,每个字母就是顶点。有向图欧拉回路的判定,首先判断入度和出度,其实这个题判定的是欧拉通路,不一定非得构成环,所以可以有一个点的顶点入度比出度大1,另外一个点的出度比入度大1,或者每个点的出度和入度相等。用并查集判断是否弱联通。最后dfs求出欧拉路径,不过这个题是让求字典序最小的...
分类:
其他好文 时间:
2015-10-24 10:04:00
阅读次数:
238
题目大意:给出一系列单词,当某个单词的首字母和前一个单词的尾字母相同,则这两个单词能链接起来。给出一系列单词,问是否能够连起来。题目分析:以单词的首尾字母为点,单词为边建立有向图,便是判断图中是否存在欧拉道路。有向图中存在欧拉路径的两个条件是:1、忽略边的方向性后,底图联通;2、奇点个数为0时、奇点...
分类:
其他好文 时间:
2015-10-06 20:49:42
阅读次数:
300