hdu 3172 Virtual Friends
来源:互联网 发布:windows nc命令安装 编辑:程序博客网 时间:2024/05/16 09:54
acm.hdu.edu.cn/showproblem.php?pid=3172
萌萌哒并查集水题!唯一需要注意一点点的是使用map容器为名字赋予一个编号便于操作!
AC代码:
#include <algorithm>#include <iostream>#include <string.h>#include <stdio.h>#include <map>using namespace std;map <string, int> mm;const int MAX = 100010;char s1[MAX][25],s2[MAX][25];int father[MAX],rank[MAX];void Init(int n){ for(int i=1; i<=n; i++){ father[i] = i; rank[i] = 1; }}int Find(int x){ if(x != father[x]) father[x] = Find(father[x]); return father[x];}void Union(int x, int y){ int xx = Find(x), yy = Find(y); if(xx != yy){ father[yy] = xx; rank[xx] += rank[yy]; // cout << x << ' ' << rank[x] << endl; }}int main(){ int cas; while(scanf("%d",&cas) != EOF){ while(cas--){ int n,pos = 0; scanf("%d",&n); mm.clear(); for(int i=0; i<n; i++){ scanf("%s%s",s1[i],s2[i]); if(mm.find(s1[i]) == mm.end()) mm[s1[i]] = ++pos; if(mm.find(s2[i]) == mm.end()) mm[s2[i]] = ++pos; } Init(pos); for(int i=0; i<n; i++){ // cout << mm[s1[i]] << " " << mm[s2[i]] << endl; Union(mm[s1[i]], mm[s2[i]]); printf("%d\n",rank[Find(mm[s1[i]])]); } } } return 0;}
0 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
- hdu 3172 Virtual Friends
- HDU 3172 Virtual Friends
- HDU 3172 Virtual Friends
- HDU-3172-Virtual Friends
- HDU 3172Virtual Friends()
- hdu 3172 Virtual Friends
- hdu 3172 virtual friends 并查集
- HDU 3172 Virtual Friends (并查集)
- 【并查集】 HDU 3172 Virtual Friends
- hdu 3172Virtual Friends (map水过)
- hdu 3172 Virtual Friends(并查集)
- 【机器学习基础】噪声与误差
- Motivated Word (1)
- 一个案例带你弄懂类的继承方式对子类对外访问属性影响以及static遇到继承
- 说说Android应用的persistent属性
- cocos2dx onpause崩
- hdu 3172 Virtual Friends
- Web_PHP_PHP XML DOM解析器浅谈;
- virtualBox共享文件夹的问题
- 【WOJ-1420-可见点】采用数论知识求互质对
- 学习jar命令 创建和解压jar文件包
- LeetCode(164) Maximum Gap
- 创建型设计模式
- Java爬虫搜索原理实现
- Queue 实现