首页 > 其他分享 >《信息学奥赛一本通》.亲戚

《信息学奥赛一本通》.亲戚

时间:2023-04-03 22:00:50浏览次数:45  
标签:信息学 输出 int Marry di 一本 亲戚 奥赛 亲戚关系

题目描述

或许你并不知道,你的某个朋友是你的亲戚。
他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。
如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。
在这种情况下,最好的帮手就是计算机。
为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。
从这些信息中,你可以推出Marry和Ben是亲戚。
请写一个程序,对于我们的关于亲戚关系的提问,以最快的速度给出答案。

输入格式

输入由两部分组成。第一部分以 N,M开始。N为问题涉及的人的个数。这些人的编号为 1,2,3,…,N。下面有 M行,每行有两个数 ai,bi,表示已知 ai和 bi是亲戚。

输出格式

对于每个询问 ci,di,输出一行:若 ci和di为亲戚,则输出“Yes”,否则输出“No”。

最基础的并查集例题,就不写思路了

#include<cstdio>
using namespace std;
const int N=21000;
int n,m,q;
int p[N];
int find(int x){
    if(p[x]!=x) p[x]=find(p[x]);
    return p[x];
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++) p[i]=i;
    int a,b;
    while(m--){
        scanf("%d%d",&a,&b);
        int pa=find(a),pb=find(b);
        if(pa!=pb){
            p[pa]=pb;
        }
    }
    scanf("%d",&q);
    while(q--){
        scanf("%d%d",&a,&b);
        int pa=find(a),pb=find(b);
        if(pa!=pb){
            printf("No\n");
        }else printf("Yes\n");
    }
    return 0;
}

标签:信息学,输出,int,Marry,di,一本,亲戚,奥赛,亲戚关系
From: https://www.cnblogs.com/yulianyi/p/17284600.html

相关文章

  • 一本正经的胡说八道,我信了你的鬼
    angular怎么做splitview在Angular中创建SplitView可以使用AngularMaterial的Splitter组件。Splitter是一个带有可调整大小的分隔符的容器,使用户可以通过拖动分隔......
  • 读完一本VOA计划-1-2008布什总统告别演讲
    布什回顾8年总统任期并祝福奥巴马录音6布什回顾8年总统任期并祝福奥巴马.mp3自己阅读录音时事-布什总统回顾8年总统任期_2023326222748.mp3文本ThisisINTHENEWS......
  • 10本java书籍,每一本都是经典,从菜鸡到大神
    先来个概览,基本是mobi格式的书籍,不知道怎么打开的小伙伴找我我教你一、设计模式之禅二、你必须知道的261个Java语言问题三、编写高质量代码:改善Java程序的151个建议(......
  • 江南信息学2023第四周练习20230317 题解
    首先,通报批评上周抄袭题解的同学有:黄耿益,黄远鸿,博客提供题解不是让大家直接复制粘贴抄袭的,而是在大家不会做时提供思路和解决方案,可以抄写,但不允许直接复制粘贴抄袭,请养成......
  • 江南信息学2023第三周练习20230310 题解
    比赛链接1001:三个数的最大值条件判断,如判断a最大就是a>=b&&a>=c,以此类推1002:星期几取余,n%7结果是0则是周一,是1则周二,以此类推1003:奇偶分家设两个求和变量sum1,sum2......
  • 【一月一本技术书】-【算法图解-像小说一样有趣的算法入门书】- 2023-2月
    算法简介算法要么有速度,要么解决有趣的问题。二分法当有序的时候。就要想到二分法。范围缩小到只包含一个元素defbinary_serach(arr,target): left=0 right=......
  • 信息学奥赛中各种评测表示(非原创)
    AC:Accept的缩写,意为通过WA:WrongAnswer的缩写,意为答案错误RE:RuntimeError的缩写,意为运行错误(通常是数组越界或爆栈了)CE:CompilationError的缩写,意为编译错误TLE:TimeLimit......
  • 江南信息学2023年第一周练习20230223 题解
    比赛链接1001:鸡尾酒疗法1#include<bits/stdc++.h>2usingnamespacestd;3intmain()4{5intn;6cin>>n;7doublea,b;8cin>>a......
  • 计蒜客信息学2023年2月普及组模拟赛
    T1:外卖你当然可以通过直接全排列枚举走的顺序通过本题,但那样太麻烦了其实本题可以分为以下三种情况:\(A\)点在最左侧,那么最短距离\(=\)最大值\(-\)最小值\(A\)点......
  • 一本通1424: 区间覆盖
    给一些区间,挑出最少的区间覆盖【0,L】  贪心:从0往后,每次挑出R点最大的#include<iostream>#include<algorithm>#include<cstring>#include<cmath>usingnam......