
图论-欧拉路
文章平均质量分 81
围巾的ACM
啊啊什么时候也能成为一个大牛啊
展开
-
hdu1878 欧拉回路
题意:给一个n个顶点m条无向边的图,问存不存在欧拉回路思路:无向图存在欧拉回路满足两个条件,图连通并且所有结点的度数为偶数#include #include #include #include #include #include #include #include #include #include #include #include #include u原创 2016-02-01 19:07:26 · 327 阅读 · 0 评论 -
poj1386Play on Words(欧拉通路)
题目: 给你多个单词,问你能不能将所有单词组成这样一个序列:序列的前一个单词的尾字母与后一个单词的头字母相同.思路:将单词看成有向边,字母看成结点,转化为判断有向图是否有欧拉路。必须满足弱连通,全部顶点度数相同或者有两个点一个入度比出度大一,一个出度比入度大一#include #include #include #include #include #include #i原创 2016-02-01 20:27:17 · 539 阅读 · 0 评论 -
HDU 3018 Ant Trip(欧拉回路一笔画问题)
题意:给一个无向图,N个顶点和M条边,问至少需要几笔才能把所有边画一遍思路:只要知道一个结论就随便做了。 如果该连通分量是一个孤立的点,显然只需要0笔. 如果该连通分量是一个欧拉图或半欧拉图,只需要1笔. 非(半)欧拉图需要的笔数==该图中奇数度的点数目/2 对于每个以i为根的连通分量我们记录属原创 2016-02-01 20:55:08 · 483 阅读 · 0 评论 -
poj1041 John's trip(欧拉回路+输出路径)
题意:一个无向图,问图中是否存在欧拉回路,如果存在,则输出字典序最小的那条欧拉回路(输入按序走过的所有边标号)。且题目中保证了该无向图是连通的。思路:欧拉路径的输出方式可以参考刘汝佳入门经典P112中的代码。不过那里的图中的边是用(i,j)来表示的,而这里的图中的边是用一个数字编号表示的.所以源代码中还需要做点小修改.然后要保证从John的家作为起始点输出欧拉回路且保证字典序最小,因为eule原创 2016-02-01 21:30:11 · 569 阅读 · 0 评论 -
poj2337Catenyms(有向欧拉图:输出欧拉路径)
题意:给你一组N个单词,现在要你输出这样一组单词序列。该序列包含了所有N个单词,且该序列中的前一个单词的最后一个字母与后一个单词的第一个字母相同。如果存在多个这种首尾相连的序列,就输出字典序最小的那个即可。思路:首先我们把每个单词看成一条边,把每个单词的首尾两个小写字母看成节点(不一定存在所有26个节点),其实就是在找一条欧拉路径。麻烦的是这道题目并没有告诉一定存在欧拉路,所以还需要判断是否存原创 2016-02-02 11:40:42 · 647 阅读 · 0 评论 -
poj1300 Door Man(欧拉回路判定)
题意:给你N个房间以及房间之间的门,且给你初始的房间号M,问你从初始房间走,可不可以经过每个门仅1次,最后到达0号房间.且所有的门都被你走过1次?思路:将房间当成顶点,门作为边,转化为判断无向图是否存在欧拉回路或者通路。 所有门都被走一遍,所以任何有门的房间都必须是在同一连通分量:即degree不为0的节点所属并查集唯一.(因为允许存在孤立的一点,房间)原创 2016-02-02 10:59:57 · 496 阅读 · 0 评论 -
poj2230 Watchcow(欧拉回路:输出点轨迹)
题意:有一个有向图,输出从1点出发经过所有边再回到1的路径,保证这种路径存在思路:其实就要输出有向图的欧拉回路,其中把每一条边都正向反向添加进图,然后递归输出即可#include #include #include #include #include #include #include #include #include #include #include #原创 2016-02-02 10:32:19 · 1346 阅读 · 0 评论 -
poj2513 Colored Sticks(欧拉回路判断+字典树)
题意:给你多个木棍,每个木棍两段涂上颜色,两根木棍只有在相同颜色的一端才能连接,问你能不能使所有木棍都连接成一条直线路思路:将每根木棍两端的颜色看作顶点,木棍当做边,转化为判断图中是否有欧拉路,一开始用map映射各种姿势超时,后来改用字典树存储。输入每根木棍的两段的颜色A和B,将A与B插入字典树,如果不存在A颜色,就新加入A颜色,并且给A颜色一个数字编号i,B颜色的编号是j. i和j就是图中原创 2016-02-02 13:56:30 · 360 阅读 · 0 评论 -
hdu5883 The Best Path(欧拉路)
题意:一个图,每一条边只能经过一次,求最大的异或和思路:每一条边只能经过一次其实就是求是否存在欧拉路,直接判度数是否都为偶或者奇数度只有2个即可,对于度数都为偶数的起点和终点会是同一点,那么枚举一下起点就可以了,对于有两个奇数度的,考虑每一个点的贡献即可#includeusing namespace std;const int maxn = 1e5+7;int a[maxn]原创 2016-09-17 23:56:20 · 2619 阅读 · 13 评论