hdu 3172 Virtual Friends(并查集)
2014-10-29 21:18
369 查看
题目链接:hdu 3172 Virtual Friends
题目大意:给定一个社交网络的关系,确定朋友的朋友是朋友,每次给定两个人是朋友,要相应输出该社交圈有多少人。
解题思路:并查集水题。
题目大意:给定一个社交网络的关系,确定朋友的朋友是朋友,每次给定两个人是朋友,要相应输出该社交圈有多少人。
解题思路:并查集水题。
#include <cstdio> #include <cstring> #include <string> #include <map> #include <iostream> #include <algorithm> using namespace std; const int maxn = 100005; int N, M, far[maxn], cnt[maxn]; map<string, int> G; inline void check(string s) { if (G.count(s)) return; cnt[M] = 1; far[M] = M; G[s] = M++; } int getfar(int x) { return x == far[x] ? x : far[x] = getfar(far[x]); } void merge (int u, int v) { int fu = getfar(u); int fv = getfar(v); if (fu != fv) { far[fv] = fu; cnt[fu] += cnt[fv]; } cout << cnt[fu] << endl; } int main () { int cas; while (scanf("%d", &cas) == 1) { while (cas--) { M = 0; G.clear(); char a[20], b[20]; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%s%s", a, b); check(a); check(b); merge(G[a], G[b]); } } } return 0; }
相关文章推荐
- hdu 3172 Virtual Friends(并查集,字典树)
- HDU 3172 Virtual Friends(带权并查集)
- hdu 3172 virtual friends 并查集
- 并查集 HDU 3172 Virtual Friends
- hdu 3172 Virtual Friends (并查集)
- hdu 3172 Virtual Friends(简单并查集)
- HDU 3172 Virtual Friends(带权并查集,map)
- hdu 3172 Virtual Friends (并查集 + 字典树)
- HDU 3172 Virtual Friends (并查集)
- hdu 3172 Virtual Friends(并查集)University of Waterloo Local Contest 2008.09
- HDU 3172 Virtual Friends (并查集节点统计)
- HDU 3172 Virtual Friends (并查集)
- HDU 3172 Virtual Friends (并查集与map的运用,同HDU1829)
- HDU 3172 并查集-Virtual Friends
- HDU 并查集 - 3172 Virtual Friends
- HDU 3172 Virtual Friends 带权并查集 -秩
- HDU 3172 Virtual Friends(并查集)
- HDU - 3172 Virtual Friends(并查集)
- hdu 3172 Virtual Friends(加权并查集)
- 并查集 Hdu 1272 (判环)+ Hdu 1213 + Hdu 1232 + Hdu 3172