POJ 2492 解题报告
来源:互联网 发布:ubuntu查看显卡信息 编辑:程序博客网 时间:2024/05/16 05:43
这道题是union-find的应用。直接是在poj 1732的基础上改的(http://blog.csdn.net/thestoryofsnow/article/details/41939671)。
thestoryofsnow2492Accepted192K829MSC++1870B/* ID: thestor1 LANG: C++ TASK: poj2492 */#include <iostream>#include <fstream>#include <cmath>#include <cstdio>#include <cstring>#include <limits>#include <string>#include <vector>#include <list>#include <set>#include <map>#include <queue>#include <stack>#include <algorithm>#include <cassert>using namespace std;const int MAXN = 2000;void makeset(vector<int> &parent, vector<int> &rank, const int N){for (int u = 0; u < N; ++u){parent[u] = u;rank[u] = 0;}}int find(int u, vector<int> &parent){if (parent[u] != u){parent[u] = find(parent[u], parent);}return parent[u];}void union_set(int u, int v, vector<int> &parent, vector<int> &rank){int ru = find(u, parent);int rv = find(v, parent);if (ru == rv){return;}if (rank[ru] < rank[rv]){parent[ru] = rv;}else if (rank[rv] < rank[ru]){parent[rv] = ru;}else{parent[ru] = rv;rank[rv]++;}}int main(){vector<int> parent(2 * MAXN);vector<int> rank(2 * MAXN);int T;scanf("%d", &T);for (int t = 0; t < T; ++t){int N, M;scanf("%d%d", &N, &M);makeset(parent, rank, N << 1);bool suspicious = false;for (int i = 0; i < M; ++i){int u, v;scanf("%d%d", &u, &v);u--, v--;// already have a conclusion, no need to processif (suspicious){continue;}if (find(u, parent) == find(v, parent) || find(u + N, parent) == find(v + N, parent)){suspicious = true;}else{union_set(u, v + N, parent, rank);union_set(v, u + N, parent, rank);}}printf("Scenario #%d:\n", t + 1);if (suspicious){printf("Suspicious bugs found!\n\n");}else{printf("No suspicious bugs found!\n\n");}}return 0; }
0 0
- POJ 2492 解题报告
- poj数百篇解题报告
- poj 1141解题报告
- poj 1001解题报告
- poj 1011 解题报告
- poj 1087 解题报告
- poj 2153解题报告
- poj 2051解题报告
- POJ 1167 解题报告
- poj 1026 解题报告
- POJ 1077 解题报告
- POJ 1042 解题报告
- POJ 1095 解题报告
- POJ 1159解题报告
- poj 2312解题报告
- POJ 1001解题报告
- POJ 1002解题报告
- POJ 1006解题报告
- 小朋友排队 蓝桥杯
- Git进阶之旅
- 开课吧?在线教育
- 寒風的Cocos2dx之旅之removeSelf与remove的区别
- Chromium设计原则总结
- POJ 2492 解题报告
- UIKit框架-高级控件Swift版本: 1.UIScrollView方法/属性详解
- css基础知识+css选择符(元素选择符、关系选择符)
- Binary String Matching
- 【猫猫的Unity Shader之旅】之高光材质
- 链式队列8种操作的实现
- 如何做笔记
- CSU - 1548 Design road
- BoIIS -- 免费IIS批量建站工具箱