UVA_10608_Friends
2016-04-07 14:22
369 查看
#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 max() { map<int, int>union_amount; for (size_t i = 0; i < represent.size(); i++) { union_amount[find(i)]++; } int maximum = 0; for (auto iter = union_amount.begin(); iter != union_amount.end(); iter++) { maximum = std::max(maximum, iter->second); } return maximum; } }; int main() { //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int T; cin >> T; while (T--) { int n, m; cin >> n >> m; DisjoinSet union_set(n); while (m--) { int first, second; cin >> first >> second; if (first > second) { std::swap(first, second); } union_set.merge(first-1, second-1); } cout << union_set.max() << endl; } return 0; }
相关文章推荐
- SMTP协议简介
- 性能优化之布局优化
- django入门记录 2
- Tomcat和Apache集群和负载均衡配置。
- Java String 转 long
- 如何监测谁用了SQL Server的Tempdb空间?
- php的header函数之设置content-type
- 5.7.4 并发量统计
- 5.7.5 协议扩展参数处理
- 自写的java学生信息管理系统
- dispatch_once
- Wooden Sticks---hdu1051(最长上升子序列)
- 微软2016校园招聘4月在线笔试 hihocoder 1288 Font Size (模拟)
- VS2008调试单步非常卡解决方法
- Android进程间通信
- Difference between <context:annotation-config> vs <context:component-scan>
- New package not yet registered with the system 解决方法
- GraphLab Create API 中文文档 - 数据工程 - graphlab.SArray
- VMware占用443端口冲突的解决办法
- 将mysql安装至windows系统服务