HDU 1272(并查集求无向图环)
来源:互联网 发布:java界面设计关闭 编辑:程序博客网 时间:2024/05/16 07:23
#include <iostream>#include <cstring>using namespace std;int set[100001];int sum;int _max;/*int Find(int i){ return set[i] == 0 ? i : (set[i] = Find(set[i]));}*/int Find(int i){ while (set[i] > 0) i = set[i]; return i;}inline void Union(int son, int father){ int s = Find(son), f = Find(father); if (set[s] < set[f]) { set[s] += set[f]; set[f] = s; if (-set[s] > _max) _max = -set[s]; } else { set[f] += set[s]; set[s] = f; if (-set[f] > _max) _max = -set[f]; }}int main(){ int a, b; int _a, _b; bool ok; while (cin >> a >> b, ~a || ~b) { ok = true; sum = 0, _max = 1; if (!(a || b)) { cout << "Yes" << endl; continue; } memset(set, -1, sizeof(set)); if (a == b) { ok = false; } else { sum = 2; Union(a, b); } while (cin >> a >> b, a || b) { if (a == b) { ok = false; } _a = Find(a), _b = Find(b); if (_a == _b || !ok) { ok = false; while (cin >> a >> b, a || b); break; } else { if (set[a] == -1) ++sum; if (set[b] == -1) ++sum; Union(_a, _b); } } if (ok && sum == _max) cout << "Yes" << endl; else cout << "No" << endl; }}
0 0
- HDU 1272(并查集求无向图环)
- hdu 1213 How Many Tables(并查集求无向图有几个连通分量)
- hdu 1272小希的迷宫(并查集判断无向图回路)
- HDU 1272 小希的迷宫【并查集判断无向图回路】
- sgu174:Walls(并查集判无向图环)
- HDU:1272 小希的迷宫(并查集+无向图成树判断)
- hdu 3018Ant Trip(一笔画问题,用并查集就无向图的连通分量)
- HDU 1116 Play on Words(欧拉路径(有向图)+并查集)
- HDU:1325 Is It A Tree?(并查集+有向图树的判断)
- 并查集-判断无向图是否存在环
- HDU-5326-Work【并查集(有向)】
- HDU 5215 Cycle(判定无向图奇偶环)
- HDU-1217 Arbitrage (有向图最大环[Floyd])
- HDU-6184 (无向图三元环计数)
- hdu 4677 并查集+离线+构造 无向图上连续区间的连通块数目
- 并查集 Hdu 1272 (判环)+ Hdu 1213 + Hdu 1232 + Hdu 3172
- 【HDU 4514】【树的直径 dfs或者并查集判断环】【给定一个无向图,图可能是非连通的,如果图中存在环,就输出YES,否则就输出树的直径】
- [有向环] hdu 4324 Triangle LOVE
- 关于fork
- android 进程与线程的区别:
- HTML5画布鼠标坐标教程
- 解决wordpress 多站点下 timthumb 找不到图片的错误
- HTML5画布上拖拽一个图像
- HDU 1272(并查集求无向图环)
- 42-将一个数组倒叙输出
- POJ 3160 求有向图(点权)遍历的最大权值 强连通缩点+最长路
- 教师需要为学生的学习把握节奏
- 国产COS余弦系统
- PHP获得中文拼音首字母
- 第7章 函数
- 喝多了
- POJ1195--Mobile phones(树状数组)