
图论
文章平均质量分 69
GooMaple
这个作者很懒,什么都没留下…
展开
-
UVa 10129 - Play on Words
先用并查集检查连通性,再用判断入度与出度关系判断其是否为欧拉回路,只有其即联通且每节点入度出度之和至多有两个为奇数(俩奇数点为起始点和结束点,且入度出度只差只能为1),其才为欧拉回路~~ 代码如下: #include #include #include #include int p[30]; int find(int x) { return p[x] == x ? x : find原创 2012-08-01 13:49:05 · 547 阅读 · 0 评论 -
UVa 10305 - Ordering Tasks
纯种的拓扑排序,参考刘汝佳《入门经典》上的代码稍加修改,完全可以AC ~ 代码如下: 纯种的拓扑排序,参考刘汝佳《入门经典》上的代码稍加修改,完全可以AC ~ 代码如下: #include #include #include #include #define max 100+5 int c[max],topo[max],t,n,G[max][max]; int dfs(int u)原创 2012-08-01 13:53:06 · 2907 阅读 · 0 评论 -
UVa 10004 - Bicoloring
一个图的题,但也可以找规律来做。两种颜色图一个图,要求相邻两点颜色不能相同,显然,以三角形环为例往外推,只要是形成奇数多边形的环,就不可能实现相邻两点的颜色不同,因此只要以每个点为基准,找出所有形成的环,只要存在奇数环就说明不能被涂色,否则就可以~~~ 代码如下: #include #include #include #include #include #include using n原创 2012-07-31 10:01:44 · 516 阅读 · 0 评论 -
UVa 10054 - The Necklace
欧拉回路,先判断其连通性和每个节点的度数的奇偶性(本题中所有节点都应为偶数),如果是欧拉回路则DFS输出结果,注意:每个“珍珠”的两个数字是可以交换的,看第二组样例就会了解 ~ 代码如下: #include #include #include #include int p[50+2]; void dfs(int u,int ffio[52][52]) // dfs输出结果 { in原创 2012-08-01 13:51:05 · 1952 阅读 · 0 评论 -
UVa 10596 - Morning Walk
纯欧拉回路的题,连通性以及度数,注意 r==0 时特殊情况的处理(此时应该是Not Possible的) ~ 代码如下: #include #include #include #include int p[200+5]; int find(int x) { return p[x] == x ? x : find(p[x]); } int main() { #ifdef state原创 2012-08-01 13:52:31 · 682 阅读 · 0 评论 -
HDU 1269 - 迷宫城堡
有向图的强连通图分量,Tarjan算法,模板题。 代码如下: #include #include #include #include #include #include #include using namespace std; const int Maxn = 10002; const int MAX = 100002; vector G[MAX]; int pre[MAX], low原创 2013-01-29 22:19:14 · 674 阅读 · 0 评论