ACM_并查集
luke2834
A junior researcher~
展开
-
Uva10054 无向图打印任意欧拉回路
题意 有一些双色水珠,串成一条项链,前后两个水珠的前后位置颜色要相同,问你可行吗?如果可行,把串的方法打印出来 思路 颜色作为节点,水珠为边建图。先用并查集判断连通性,再判断是否为欧拉图,最后dfs打印~注意无向图用过一条边i->j后,要删去i->j和j->i,还有打印的时候有小技巧,可以体会下~ #include #include #include #include usin原创 2015-03-29 21:35:52 · 532 阅读 · 0 评论 -
POJ1386 有向图是否存在欧拉通路
#include #include #include #include using namespace std; const int maxm = 100005; const int maxn = 26; int n,m; int ru[maxn]; int chu[maxn]; int mapp[maxn]; int fa[maxn]; int ra[maxn]; char str[10原创 2015-03-26 13:56:43 · 646 阅读 · 0 评论 -
POJ 1637 混合图欧拉回路判断 最大流模板
题意 给你一个混合图(有向边+无向边),判断是否存在欧拉回路 思路 设d(i) = 出度(i) - 入度(i)。无向边随意定向,先并查集判连通,判di是否都为偶数,不是则不行。 建图,加入s,t两点,对di>0的,s->i建边,最大流量为di/2,对dit建边,最大流量为-di/2。把随意定向的无向边,加入图中,最大流量为1.跑最大流,如果最后从s出的边都满流,则有欧拉回路。把那些流量为1的边原创 2015-04-01 16:29:41 · 414 阅读 · 0 评论 -
hihoCoder1067 最近公共祖先离线查询 dfs + 并查集
题意 给定树,有q个查询,查询点对的最近公共祖先 思路 课参考题中给的解析:http://hihocoder.com/problemset/problem/1067 实现#include <bits/stdc++.h> using namespace std; int n,m; const int maxn = 1e5+5; vector<int> g[maxn]; typedef pair<int原创 2016-01-01 20:29:09 · 493 阅读 · 0 评论