欧拉回路
文章平均质量分 84
ophunter
不会DP!
展开
-
poj1392Ouroboros Snake(欧拉回路)
->题目请戳这里 题目大意:这题跟杭电的2894基本是一样的 题目分析:具体建图,->请戳这里,这题要求输出的是当每次读n个二进制位的时候,所求出的字典序最小的序列的第k个数的值。只要输出具体的某个值,所以我们把答案存起来,n从1-15只算1次就行了,重复的查表即可。 详情请见代码: #include #include #include using namespace std; c原创 2013-06-07 09:55:10 · 905 阅读 · 0 评论 -
poj1041John's trip(欧拉回路+输出路径)
->题目请戳这里 题目大意:一个小镇有m条街,n个交叉口,每条街上有john的一个朋友,现在john要拜访每个朋友1次,输出字典序最小的访问街道编号。起点是输入第一组数据最小的端点。 题目分析:典型的欧拉回路问题。先判断图是连通的并且所有点度数为偶数,因为这题是无向图,建图的时候每条边正反建一次。由于要字典序最小,所以要先dfs编号较小的街道,所以建图的时候稍微注意一下,我是先把所有的街道排序原创 2013-06-06 19:19:17 · 964 阅读 · 0 评论 -
poj2230Watchcow(简单欧拉回路)
->题目请戳这里 题目大意:m条路连n个地方,这m条路是双向的,即从a到b和从b到a是不一样的。现在从1出发,沿每一条路走1遍回到起点1,给出这样的一种走法,依次输出经过的顶点,special judge。 题目分析:红果果的欧拉回路问题,对每一对点,建2条有向边,最后dfs得到一条欧拉回路。这题要注意数组大小,M是边的数量,再正反建边,就是2M条边,最后有4M+1个点,所以如果要保存所有的点原创 2013-06-06 16:52:41 · 1072 阅读 · 0 评论 -
杭电1116Play on Words(欧拉路径(回路)的判断)
->题目请戳这里 题目大意:给你一些单词,问是否能完成单词接龙,即一个单词的最后一个字母是另一个单词的首字母,每个单词都必须有,并且只能出现一次。 题目分析:每个单词只取首尾字母,从首字母到尾字母建一条有向边,最后建成一张有向图,题目转化成了在这张有向图中能否找到一条欧拉路径或者回路。用并查集维护这张图可以判断图是否连通。 来复习一下欧拉图的判断条件: 1。对于无向图,每个顶点的度数为偶数原创 2013-06-06 16:45:43 · 1051 阅读 · 0 评论 -
杭电2894DeBruijin(欧拉回路)
->题目请戳这里 题目大意:一个旋转鼓,上面均匀分成m份,每一份可以表示二进制的0或1,现在求一个最短的01序列,使任意的k个相邻的01序列表示不同的值。并输出字典序最小的一个序列。 题目分析:这个序列是循环的,长度为k的二进制数表示的范围是0-2^k - 1,鼓转动一小格,当前k个二进制位与前一个状态相比,只有首尾2个二进制位发生了改变,中间的k-1位是不变的,考虑以这k-1位二进制位为点,原创 2013-06-07 09:10:32 · 1172 阅读 · 0 评论 -
poj1637Sightseeing tour(混合图欧拉回路)
题目请戳这里 题目大意:求混合图欧拉回路。 题目分析:最大流。竟然用网络流求混合图的欧拉回路,涨姿势了啊啊。。 其实仔细一想也是那么回事。欧拉回路是遍历所有边一次又回到起点的回路。双向图只要每个点度数为偶数即可,有向图要保证所有点入度等于出度。求路径的话,dfs即可。 混合图的话,就比较复杂。首先将有向边定向,求出所有点的入度和出度,如果某个点入度和出度之差为奇数,则一定不存在欧拉回路,因原创 2013-09-11 00:43:15 · 1860 阅读 · 0 评论