ACM_“打老虎”的背后(简单并查集)
Problem Description:
“习大大”自担任国家主席以来大力反腐倡廉,各地打击贪腐力度也逐步加强。中国的这种令外国人不解的“风情”到底是何缘由呢?其实中国人都知道,所有的腐败问题基本上都源自官场上的“潜规则”,那“潜规则”又是源自什么呢?在中国盛行一句古语,“无关系不成方圆”,说的是中国是一个人情社会,纽带关系很强。一个人跟另一个人可能存在沾亲带故的某种“关系”,而所有通过这种“关系”的传递关系之后就产生了一个个的“关系网”。
假设现在存在n个人编号:1,2,3,...,n.当中存在k个一对一“关系”:(a,b),你能帮忙求出n个人当中存在几个“关系网”吗?
例如:当n=4,k=3(1--2 2--4 4--2)时,存在2个关系网:(1,2,4)和(3)。
Input:
输入包含多组测试数据。每一组测试第一行输入两个正整数n,m(n,m<=10000),表示n个人之中存在m个的“关系”;
下面m行每一行输入a,b(1 <= a,b <= n且a!=b)表示a和b之间存在关系,其中(a,b)可能重复出现。
Output:
对于每一组测试,输出n个人形成的“关系网”的个数,占一行。
Sample Input:
4 3
1 2
2 4
4 2
6 3
1 2
3 4
5 6
Sample Output:
2
3
解题思路:简单并查集,找出连通分量的个数即可,水过!
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int n,m,a,b,num,fa[maxn];
void init(){
for(int i=;i<=n;++i)fa[i]=i;
}
int findt(int x){
int tmp,pir=x;
while(fa[pir]!=pir)pir=fa[pir];
while(x!=pir){tmp=fa[x];fa[x]=pir;x=tmp;}//路径压缩
return x;
}
void unite(int x,int y){
x=findt(x),y=findt(y);
if(x!=y)fa[x]=y;
}
int main(){
while(~scanf("%d%d",&n,&m)){
init();num=;
while(m--){scanf("%d%d",&a,&b);unite(a,b);}
for(int i=;i<=n;++i)
if(fa[i]==i)num++;
printf("%d\n",num);
}
return ;
}
ACM_“打老虎”的背后(简单并查集)的更多相关文章
- ACM_城市交通线(简单并查集)
城市交通线 Time Limit: 2000/1000ms (Java/Others) Problem Description: A国有n座城市,编号为1~n,这n个城市之间没有任何交通线路,所以不同 ...
- POJ 2524 (简单并查集) Ubiquitous Religions
题意:有编号为1到n的学生,然后有m组调查,每组调查中有a和b,表示该两个学生有同样的宗教信仰,问最多有多少种不同的宗教信仰 简单并查集 //#define LOCAL #include <io ...
- poj1611 简单并查集
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 32781 Accepted: 15902 De ...
- 1213 How Many Tables(简单并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 简单并查集,统计单独成树的数量. 代码: #include <stdio.h> #i ...
- 【简单并查集】Farm Irrigation
Farm Irrigation Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Tot ...
- poj1988 简单并查集
B - 叠叠乐 Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:30000KB 64bit ...
- UVA - 1197 (简单并查集计数)
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...
- poj 2524 Ubiquitous Religions 一简单并查集
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 22389 Accepted ...
- LA3644简单并查集判环
题意: 有n个化合物,每个化合物是两种元素组成,现在要装车,但是一旦车上的化合物中的某几个化合物组成这样一组关系,有n个化合物正好用了n中元素,那么就会爆炸,输入的顺序是装车的顺序,对于每 ...
随机推荐
- The Falling Leaves(建树方法)
uva 699 紫书P159 Each year, fall in the North Central region is accompanied by the brilliant colors of ...
- Unity对象的所有组件深拷贝与粘贴
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/51454847 作者:car ...
- hrbust oj 1536 Leonardo's Notebook 置换群问题
题目大意: 给出一个A~Z的置换G,问能否找到一个A~Z的置换G' 能够用来表示为 G = G'*G' 由定理: 任意一个长为 L 的置换的k次幂,都会把自己的每一个循环节分裂成gcd(L, K)份, ...
- Spring mvc 时间转换
http://www.cnblogs.com/ssslinppp/p/4600043.html
- ios7新增api实现扫描二维码
本来用的ZBar开源库实现的扫描二维码,可是貌似不支持arm64了,也没有在更新. 如今不用适配ios7下面.而iOS新增系统API已支持扫码,參考老外的一篇博客做了个demo.须要的能够參考下 參考 ...
- 改动wordpress默认发邮件邮箱地址
方法一: wordpress发送邮件默认是用的php mail函数.所以发送邮件的地址是能够随意写的.其默认发邮件的地址是wordpress@yourdomain.com.当然这个地址是能够改动的. ...
- 开发汉澳sinox64位,对接汉澳矩阵电脑
汉澳矩阵电脑刚刚不久前提出,即使全然设计出了汉澳矩阵电脑线路图,要在上面执行操作系统必须有矩阵操作系统. 汉澳sinox64位操作系统并非矩阵操作系统,仅仅是更为接近. 汉澳矩阵电脑假设插有16个矩阵 ...
- ViewPager中View的复用
代码例如以下: public class MyViewPagerAdapter extends PagerAdapter { //显示的数据 private List<DataBean> ...
- 【bzoj1821】[JSOI2010]Group 部落划分 Group
题目大意:要求把n个点分成m块,使得每一块之间的距离的最小值最大 n^2枚举所有点之间距离 然后sort一下 并查集维护连通关系 一开始e[]开MAXN然后WA了测了4ms,然后开MAXN<&l ...
- Xshell配色方案啊【学习笔记】
自己移植从putty版本移植到Xshell的配色方案,效果不错,看上去挺舒服. [myisayme] text(bold)=eaeaea magenta(bold)=ff55ff text=fffff ...