HDU Virtual Friends(超级经典的带权并查集)
Virtual Friends
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11092 Accepted Submission(s): 3221
Your task is to observe the interactions on such a website and keep track of the size of each person's network.
Assume that every friendship is mutual. If Fred is Barney's friend, then Barney is also Fred's friend.
The first line of each case indicates the number of test friendship nest.
each friendship nest begins with a line containing an integer F, the number of friendships formed in this frindship nest, which is no more than 100 000. Each of the following F lines contains the names of two people who have just become friends, separated by a space. A name is a string of 1 to 20 letters (uppercase or lowercase).
3
Fred Barney
Barney Betty
Betty Wilma
3
4
题目说的是,网上交友,朋友的朋友也是自己的朋友,问每次两个交了朋友之后,他们朋友圈里有多少人,
并查集处理比较顺,用上map 编号,比较简单就处理了.....但是这个题目的输入比较坑,很少见到这样的输入..........无限次指定次数的输入.........
分析:
#include<queue>
#include<set>
#include<cstdio>
#include <iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<string>
#include<string.h>
#include<memory>
using namespace std;
#define max_v 100005
#define INF 9999999
int pa[max_v+];
int num[max_v+];
int n;
void init()
{
for(int i=; i<max_v; i++)
{
pa[i]=i;
num[i]=;//权
}
}
int find_set(int x)
{
if(pa[x]!=x)
pa[x]=find_set(pa[x]);
return pa[x];
}
void union_set(int x,int y)
{
int fx=find_set(x);
int fy=find_set(y); if(fx!=fy)
{
pa[fx]=fy;
num[fy]+=num[fx];//!!!计数
}
printf("%d\n",num[fy]);
}
int main()
{
int t;
while(~ scanf("%d",&t))
{
string str1,str2;
while(t--)
{
init();
map<string,int>mm;
scanf("%d",&n);
int k=;
for(int i=; i<n; i++)
{
cin>>str1>>str2;
if(!mm[str1])
{
mm[str1]=k++;
}
if(!mm[str2])
{
mm[str2]=k++;
}
union_set(mm[str1],mm[str2]);
}
}
}
return ;
}
HDU Virtual Friends(超级经典的带权并查集)的更多相关文章
- HDU 3635 Dragon Balls(超级经典的带权并查集!!!新手入门)
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- hdu 1829-A Bug's LIfe(简单带权并查集)
题意:Bug有两种性别,异性之间才交往, 让你根据数据判断是否存在同性恋,输入有 t 组数据,每组数据给出bug数量n, 和关系数m, 以下m行给出相交往的一对Bug编号 a, b.只需要判断有没有, ...
- HDU 5176 The Experience of Love 带权并查集
The Experience of Love Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- Travel(HDU 5441 2015长春区域赛 带权并查集)
Travel Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
- HDU 3038 - How Many Answers Are Wrong - [经典带权并查集]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- 洛谷 1196 [NOI2002]银河英雄传说【模板】带权并查集
[题解] 经典的带权并查集题目. 设cnt[i]表示i前面的点的数量,siz[i]表示第i个点(这个点是代表元)所处的联通块的大小:合并的时候更新siz.旧的代表元的cnt,路径压缩的时候维护cnt即 ...
- 并查集例题02.带权并查集(poj1182)
Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A.现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底 ...
- hdu 5441 Travel 离线带权并查集
Travel Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5441 De ...
- HDU 3047 Zjnu Stadium(带权并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3047 题意: 给出n个座位,有m次询问,每次a,b,d表示b要在a右边d个位置处,问有几个询问是错误的. 思路: ...
随机推荐
- MVC 事物同时保存,更新数据库
本人小白一枚,第一次写博,主要用作笔记,怕以后忘记了,大神尙可路过,也可多多指教 事物用在同时保存更新数据时,及只要在事物块的范围内,有一个操作出错则事物块所有更新,保存等操作都不会执行 ...
- mysql 报错 ‘u'Subquery returns more than 1 row'’
watch_course_sql ) , '%%Y-%%m-%%d %%T') regtime, a.username FROM bskuser a where a.UserName in (sele ...
- ES6学习笔记(三)-正则扩展
PS: 前段时间转入有道云笔记,体验非常友好,所以笔记一般记录于云笔记中,每隔一段时间,会整理一下, 发在博客上与大家一起分享,交流和学习. 以下:
- 【转】使用expect实现shell自动交互
原文地址:http://www.nginx.cn/1934.html shell脚本需要交互的地方可以使用here文档是实现,但是有些命令却需要用户手动去就交互如passwd.scp 对自动部署免去用 ...
- Gensim入门教程
What is Gensim? Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达.它支持包括TF-IDF,LSA,LDA,和word ...
- 让UpdatePanel支持文件上传(2):服务器端组件 .
我们现在来关注服务器端的组件.目前的主要问题是,我们如何让页面(事实上是ScriptManager控件)认为它接收到的是一个异步的回送?ScriptManager控件会在HTTP请求的Header中查 ...
- Linux入门-3 Linux磁盘及文件系统管理
1. 磁盘基本概念 1.1 磁盘结构:盘片(单碟vs多碟).磁头(读写数据) 1.2 磁盘在Linux中的表示 1.3 分区概念 2 使用fdisk进行磁盘管理 3 Linux文件系统 mke2fs ...
- WORD列表缩进的文本起始点
Figure 1 Figure 2 Figure 3 编号位置以刻度尺为起点0.74厘米(2个字符间距),文本缩进以刻度尺为起点2.96厘米(8个字符间距) 以上两者相减得到的值正好=特殊格式悬挂缩进 ...
- [EffectiveC++]item15:Provide access to raw resources in resource-managing class
在资源管理类中提供对原始资源的访问
- Source InSight context 窗口丢失的解决办法
我没关si的情况下强制关机导致的 Source InSight context 窗口丢失的解决办法 (2010-09-03 13:35:45) 转载▼ 今天早晨改改CLI,上了趟WC,回来发现 ...