Problem Description:

A国有n座城市,编号为1~n,这n个城市之间没有任何交通线路,所以不同城市的居民之间不能互通,所以A国的人打算为这n个城市建立k条交通线(两座城市之间可以有两条及以上的线路),交通线只能贯穿两座城市p, q(存在p=q的情况,不用考虑但会占用一条交通线), 建立交通线后两座城市的居民可以互通。 例如:建立1, 4后再建立4, 2,则1和2是互通的(1—>4—>2)。建立完k条交通线后,接着有m次询问,问居住在两个城市a, b的居民能否互通。

Input:

输入数据有多组,每一组的第一行包含两个整数n (0<n<=5000), k (0<k<=10000) , 接下来有k行,每行包含两个整数p,q (0<p,q<=n),代表城市p,q之间建立一条交通线。再接着一个整数m (0<m<=n) 代表有m次询问,接下来有m行,每行包含两个整数a, b(0<a,b<=n) 询问城市a,b之间的居民能否互通 (同一个城市的居民能互通)。

Output:

两座城市的居民可以互通则输出“YES”,否则输出“NO”,每个输出占一行。

Sample Input:

6 5
1 4
4 2
2 4
5 6
4 1
4
1 2
1 3
1 6
4 4

Sample Output:

YES
NO
NO
YES
解题思路:简单的并查集,水过。
AC代码:
 #include<bits/stdc++.h>
using namespace std;
const int maxn=;
int n,k,p,q,m,a,b,fa[maxn];
int findt(int x){
int pir=x,tmp;
while(pir!=fa[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,&k)){
for(int i=;i<=n;++i)fa[i]=i;
while(k--){scanf("%d%d",&p,&q);unite(p,q);}
scanf("%d",&m);
while(m--){
scanf("%d%d",&a,&b);
if(findt(a)==findt(b))puts("YES");
else puts("NO");
}
}
return ;
}

ACM_城市交通线(简单并查集)的更多相关文章

  1. ACM_“打老虎”的背后(简单并查集)

    “打老虎”的背后 Time Limit: 2000/1000ms (Java/Others) Problem Description: “习大大”自担任国家主席以来大力反腐倡廉,各地打击贪腐力度也逐步 ...

  2. POJ 2524 (简单并查集) Ubiquitous Religions

    题意:有编号为1到n的学生,然后有m组调查,每组调查中有a和b,表示该两个学生有同样的宗教信仰,问最多有多少种不同的宗教信仰 简单并查集 //#define LOCAL #include <io ...

  3. poj1611 简单并查集

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 32781   Accepted: 15902 De ...

  4. 1213 How Many Tables(简单并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 简单并查集,统计单独成树的数量. 代码: #include <stdio.h> #i ...

  5. 【简单并查集】Farm Irrigation

    Farm Irrigation Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tot ...

  6. hdu 2480 贪心+简单并查集

    Steal the Treasure Time Limit: 10000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  7. poj1988 简单并查集

    B - 叠叠乐 Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:30000KB     64bit ...

  8. UVA - 1197 (简单并查集计数)

    Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...

  9. poj 2524 Ubiquitous Religions 一简单并查集

    Ubiquitous Religions   Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 22389   Accepted ...

随机推荐

  1. matlab数值数据的表示方法,输出数据以及相关函数

    数据类型的分类: 1.整型 无符号整型和带符号整形 带符号整形的最大值是127 >>x=int8(129) 输出结果是x=127 >>x=unit8(129) 输出结果是x=1 ...

  2. POJ 1088 滑雪(简单的记忆化dp)

    题目 又一道可以称之为dp的题目,虽然看了别人的代码,但是我的代码写的还是很挫,,,,,, //看了题解做的简单的记忆化dp #include<stdio.h> #include<a ...

  3. android 彩信附件添加删除

    http://blog.csdn.net/yuzhu_guan2012/article/details/6679154

  4. SSM框架下实现导入功能

    何叫导入?简单说,导入就是把excel表格里的数据插入到数据库里.我这里做的是支持.xls和.xlsx格式. 因为是自己做案例记录,那些jar包什么的就不细说了,主要讲实现和步骤,看代码: 先在你的项 ...

  5. [luogu1373]小a和uim之大逃离_动态规划

    小a和uim之大逃离 题目大意:有一个n*m的矩阵.每个格子上有一坨0~k不等量的权值.有两个人,每个人任选一个格子作为出发点,并只能向下或向右走.求最后两个人所得到的权值mod k相等的方案数. 注 ...

  6. Spring MVC-处理程序映射(Handler Mapping)-Bean名称Url处理程序映射(Bean Name Url Handler Mapping)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_beannameurlhandlermapping.htm 说明:示例基于Spri ...

  7. [C++基础]goto的用法

    原文: http://blog.csdn.net/shimazhuge/article/details/8448773 ---------------------------------------- ...

  8. Oracle批量恢复drop操作删除的表、索引等对象

    /**********************************************************************查询Drop操作删除的对象select * from re ...

  9. 四大传值详解:属性传值,单例传值,代理传值,block传值

    一:属性传值 传值情景:从前一个页面向后一个页面传值 a.在后一个页面,根据传值类型和个数,写属性 b.在前一个页面, 为属性赋值 c.在后一个页面, 使用值 例如: 第一个视图: #import & ...

  10. Kafka编程实例

    编程 Producer是一个应用程序.它创建消息并发送它们到Kafka broker中.这些producer在本质上是不同.比方.前端应用程序.后端服务.代理服务.适配器对于潜在的系统,Hadoop对 ...