luogu P1551 亲戚

简介: luogu P1551 亲戚

题目背景

若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。


题目描述

规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。


输入输出格式

输入格式:

第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。


以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Mi和Mj具有亲戚关系。


接下来p行:每行两个数Pi,Pj,询问Pi和Pj是否具有亲戚关系。


输出格式:

P行,每行一个’Yes’或’No’。表示第i个询问的答案为“具有”或“不具有”亲戚关系。


思路:并查集

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int fa[maxn];
int find(int x) {
    return x == fa[x] ? x : fa[x] = find(fa[x]);
}
int main() {
    int n, m, q, u, v;
    cin >> n >> m >> q;
    for (int i = 1; i <= n; i++) { //初始化每个集合 
        fa[i] = i;
    } 
    for (int i = 1; i <= m; i++) {
        cin >> u >> v;
        fa[find(u)] = find(v); //合并集合 
    }
    for(int i = 1; i <= q; i++) {
        cin >> u >> v;
        if(find(u) == find(v)) {//判断是否是同一个集合 
            cout << "Yes" << endl;
        } else {
            cout << "No" << endl;
        }
    }
    return 0;
}
相关文章
|
8月前
acwing 恨7不成妻
acwing 恨7不成妻
56 0
|
3月前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
30 0
|
3月前
lanqiao OJ 182 小朋友崇拜圈
lanqiao OJ 182 小朋友崇拜圈
32 2
|
7月前
|
C++
【洛谷 P1428】小鱼比可爱 题解(循环)
这是一个编程竞赛问题,题目要求编写一个程序来计算每只鱼在其视野内看到的更不可爱的鱼的数量。给定鱼的总数`n`和每只鱼的可爱程度数组`a[]`,输出每个位置的鱼能看到的更不可爱的鱼的数量。 **摘要:** ```markdown 解决一个编程挑战,计算鱼在“比可爱”比赛中左边有多少条更不可爱的鱼。输入包含鱼的总数`n`和每条鱼的可爱度,输出每条鱼眼中更不可爱的鱼数。提供的C++代码通过遍历数组,比较每只鱼的可爱度并累计小于它的数量,然后输出结果。 ``` 这个摘要在240个字符以内,简要概述了问题的背景、任务和解决方案的概要。
70 0
|
C语言
【小朋友的三子棋】
【小朋友的三子棋】
73 0
luogu P1516 青蛙的约会
luogu P1516 青蛙的约会
76 0
luogu P1993 小K的农场(差分约束系统)
luogu P1993 小K的农场(差分约束系统)
72 0
|
存储
AcWing第98和99周赛
AcWing第98和99周赛
103 0
|
C++
【寒假每日一题】AcWing 4728. 乘方
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
151 0

热门文章

最新文章