UVA_793_Network Connections
2016-04-07 18:41
309 查看
#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 T; cin >> T; while (T--) { int n; cin >> n; cin.get(); DisjoinSet union_set(n); string str; int yes = 0, no = 0; while (getline(cin, str)) { if (str.empty()) { break; } stringstream stream; stream << str; char order; stream >> order; if (order == 'c') { int first, second; stream >> first >> second; union_set.merge(first - 1, second - 1); } else { int first, second; stream >> first >> second; if (union_set.find(first - 1) == union_set.find(second - 1)) { yes++; } else { no++; } } } cout << yes << ',' << no << endl; if (T) { cout << endl; } } return 0; }
相关文章推荐
- Jquery的extend
- 重载和重写
- Linux Namespaces机制
- Hive安装及使用攻略
- Unity3D for VR 学习(1): 又一个新玩具 暴风魔镜 4(Android)
- [LCT 线性模方程] BZOJ 2759 一个动态树好题
- note: candidates are: virtual void CHandle::OnExcute(int, char*, int&, char*, int&)
- 带中文的路径导致NSURL初始化一直为null的问题
- 1、汇编学习之进制转换
- open gop的提升画质很有限,建议默认值,即为关闭gop
- Git基本操作
- c语言基本概念
- Maven-web.xml参考
- listview数据下载后不更新
- HDU 1078 FatMouse and Cheese 记忆化搜索
- ie浏览器强制开启怪异模式(Quirks Mode)的解决方法
- 自定义->圆形进度条
- 获取Web项目路径
- 如何设置滚动新闻
- 自定义有下滑线的EditText