UVA_10583_Ubiquitous Religions
2016-04-07 18:10
363 查看
#include<iostream> #include<sstream> #include<string> #include<vector> #include<list> #include<set> #include<map> #include<stack> #include<queue> #include<algorithm> #pragma warning(disable:4996) using std::cin; using std::cout; using std::endl; using std::stringstream; using std::string; using std::vector; using std::list; using std::pair; using std::set; using std::multiset; using std::map; using std::multimap; using std::stack; using std::queue; class DisjoinSet { private: vector<int>represent, rank; public: DisjoinSet(const int &n):represent(n),rank(n) { for (int i = 0; i < n; i++) { represent[i] = i; } } int find(int i) { return represent[i] = represent[i] == i ? i : find(represent[i]); } void merge(const int &x, const int &y) { auto a = find(x);auto b = find(y); if (rank[a] < rank[b]) { represent[a] = b; } else { represent[b] = a; if (rank[b] == rank[a]) { rank[a]++; } } } int count() { set<int>ret; for (size_t i = 0; i < represent.size(); i++) { ret.insert(find(i)); } return ret.size(); } }; int main() { //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int n, m, count = 0; while (cin >> n >> m) { if (!n&&!m) { break; } DisjoinSet union_set(n); while (m--) { int first, second; cin >> first >> second; union_set.merge(first - 1, second - 1); } printf("Case %d: %d\n",++count,union_set.count()); } return 0; }
相关文章推荐
- ios —— UIViewAdditions 布局坐标类库
- Ural 1183 Brackets Sequence(区间DP+记忆化搜索)
- UIColor *_color[5] UIColor数组
- DuiLib(7)——CTreeViewUI使用攻略
- requirejs加载css
- 79.iOS 设备的UI规范和iOS各控件默认高度
- 通用页面框架CmPage(一):简介
- [leetcode] 23. Merge k Sorted Lists
- EasyUI 使用心得
- Android gradle plugin和 Gradle版本关系\Gradle version 1.10 is required. Current version is 2.0
- Audio Session Programming Guide(官方文档翻译一)
- 深度评测xcgui(二)
- KVC中setValuesForKeysWithDictionary:
- iOS - UITextFieldKeyBoardPan为时间选择器
- 深入了解Volley如何执行一个Request的流程
- UE3 ExampleGame Android版无法运行解决方案
- 菜鸟成长记-QQ聊天输入框随键盘弹起、UITableView加强
- 【LeetCode】51. N-Queens
- Android UI界面开发基础归纳
- UIImage加载方式