HDU-3172 Virtual Friends 并查集+map
2014-01-24 13:30
393 查看
题目链接
#include<stdio.h> #include<iostream> #include<string> #include<string.h> #include<math.h> #include<algorithm> #include<vector> #include<queue> #include<map> using namespace std; const int maxn = 100050; const int inf = 1<<30; int n,m; int p[maxn],mark[maxn]; map<string,int>maps; int find(int x) { return x!=p[x]?p[x]=find(p[x]):x; } void merge( int a,int b ) { int x = find(a); int y = find(b); if( x != y ){ p[x] = y; mark[y] += mark[x]; printf("%d\n",mark[y]); } else printf("%d\n",mark[y]); } void init() { maps.clear(); for( int i = 1; i < maxn; i ++ ){ p[i] = i; mark[i] = 1; } } int main() { //freopen("data.txt","r",stdin); int cas,pos; string s1,s2; while( scanf("%d",&cas) != EOF ){ while( cas -- ){ init(); pos = 1; scanf("%d",&n); for( int i = 0; i < n; i ++ ){ cin>>s1>>s2; if( !maps[s1] ) maps[s1] = pos ++; if( !maps[s2] ) maps[s2] = pos ++; merge(maps[s1],maps[s2]); } } } return 0; }
相关文章推荐
- HDU 3172 Virtual Friends 并查集+map
- hdu 3172 Virtual Friends(并查集+map)
- 文章标题 HDU 3172 : Virtual Friends (并查集+map)
- hdu 3172 Virtual Friends 【并查集+map】
- 【 HDU 3172 Virtual Friends】 并查集+map指针优化
- hdu 3172 Virtual Friends (map+并查集)
- hdu 3172 Virtual Friends
- HDU 3172 Virtual Friends(带权并查集,map)
- HDU 3172 Virtual Friends (并查集)
- HDU 3172 Virtual Friends(map+并查集)
- 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(并查集+map+输入)
- hdu-3172 Virtual Friends(并查集+容器)