hdu3172 Virtual Friends 并查集 map映射
来源:互联网 发布:淘宝怎么搜阿普唑仑 编辑:程序博客网 时间:2024/05/19 22:06
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3172
题目大意:给你N个社交网络圈,紧接着m个人的关系,每更新一个信息,输出当前两个人的朋友圈里有多少个朋友,多组测试数据。
解题思路:明显的并查集,但主要问题是吧名字转化成方便合并查找的数字,用map映射,代码如下:
#include<stdio.h>#include<map>#include<iostream>using namespace std;map<string,int> m;int f[100005],rank[100005];int find(int x){ if(x==f[x]) return x; return f[x]=find(f[x]);}void init(){ for(int i=1;i<100005;i++) {f[i]=i;rank[i]=1;}}void merge(int x,int y){ int fx=find(x); int fy=find(y); if(fx!=fy) { f[fx]=fy; rank[fy]+=rank[fx]; } printf("%d\n",rank[fy]);}int main(){ int t; char a[25],b[25]; while(~scanf("%d",&t)) { while(t--) { int n; scanf("%d",&n); init(); m.clear();//清空容器map int ans=1; for(int i=1; i<=n; i++) { scanf("%s%s",a,b); if(!m[a])//如果没出现过,映射为ans,同时ans++ m[a]=ans++; if(!m[b]) m[b]=ans++; merge(m[a],m[b]); } } } return 0;}
其实这道题学到了map的一个小用法。。。
0 0
- hdu3172 Virtual Friends 并查集 map映射
- HDU3172 Virtual Friends 并查集
- Hdu3172 - Virtual Friends - 并查集
- hdu3172 Virtual Friends--并查集
- hdu3172 Virtual Friends 带权并查集
- 带权并查集:HDU3172-Virtual Friends
- Virtual Friends<并查集+map求解>
- HDU-3172 Virtual Friends 并查集+map
- hdu 3172 Virtual Friends(并查集+map)
- HDU 3172 Virtual Friends(带权并查集,map)
- 杭电 3172 Virtual Friends【并查集 + map容器】
- hdoj 3172 Virtual Friends 【并查集 + STL map】
- hdu 3172 Virtual Friends 【并查集+map】
- hdu 3172 Virtual Friends (map+并查集)
- HDU 3172 Virtual Friends 并查集+map
- HDU 3172 Virtual Friends(并查集+map+输入)
- HDU3172--Virtual Friends
- hdu3172 Virtual Friends
- python中的迭代器与生成器
- 项目中使用的gif开源组件----android-gif-drawable
- [黑马程序员]命令行执行时碰到Exception in thread "main" java.lang.NoClassDefFoundError
- HDU2421
- swfupload无刷新上传
- hdu3172 Virtual Friends 并查集 map映射
- 我迷茫过
- 康托展开及其逆运算【cantor】
- HDU Escape (网络流,最大流)
- 网站建设:万网域名+阿里云服务器
- c++类继承,构造函数和析构函数调用顺序
- Boss授权正常,在地市BO中状态为“已注销"
- C# region
- 妙味云课堂之css:表格和表单