每日一题之亲戚

简介: 大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题这个月进度是数据结构,让大家练到各种各样的数据结构题目,熟悉数据结构的增删改查,一年以后,蜕变成为一个不一样的自己!

今日题目:亲戚


1.题目要求


规定:xx 和 yy 是亲戚,yy 和 zz 是亲戚,那么 xx 和 zz 也是亲戚。如果 xx,yy 是亲戚,那么 xx 的亲戚都是 yy 的亲戚,yy 的亲戚也都是 xx 的亲戚。


输入格式


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


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


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


输出格式


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


2.题目分析


题目难度:⭐️


题目涉及算法:并查集。


ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力


题解报告:


1.思路


这道题基本就是并查集模板了,初始化完成之后把亲戚合并,之后循环p次寻找关系。


2.代码


#include<bits/stdc++.h>
using namespace std;
const int N = 10001;
int pre[N];
bool vis[N];
int find(int x)  
{
  if(x!=pre[x])
  {
    return pre[x] = find(pre[x]);
  }
  return x;
}
void join(int x,int y)
{
  int xx = find(x);
  int yy = find(y);
  if(xx!=yy)
  {
    pre[yy] = xx;
  }
}
int main()
{
  int n,m,p,x,y;
  cin>>n>>m>>p;
  int z,j;
  for(int i=1;i<=n;i++)
  {
    pre[i] = i;
  }
  for(int i=1;i<=m;i++)
  {
    cin>>x>>y;
    join(x,y);
  }
  for(int i=1;i<=p;i++)
  {
    cin>>z>>j;
    if(find(z)==find(j))
    {
      cout<<"Yes"<<endl;
    }
    else
    {
      cout<<"No"<<endl;
    }
  }
  return 0;
}


目录
相关文章
|
5月前
|
算法
人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。
这篇文章介绍了解决LeetCode第一题"两数之和"的方法,提供了题目的描述、输入输出示例,并给出了解决这个问题的算法思路。
|
C语言
【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马
【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马
111 0
|
8月前
|
机器学习/深度学习 存储 算法
献给阿尔吉侬的花束
献给阿尔吉侬的花束
74 0
|
机器学习/深度学习
1389:亲戚
1389:亲戚
114 0
|
定位技术
1256:献给阿尔吉侬的花束 2021-01-09
1256:献给阿尔吉侬的花束 2021-01-09
105 0
|
存储 人工智能 BI
【蓝桥杯集训·每日一题】AcWing 1249. 亲戚
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 并查集
101 0
|
存储 人工智能 JavaScript
【寒假每日一题】AcWing 4510. 寻宝!大冒险!
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
144 0
|
存储 算法
有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
434 0
有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
|
机器学习/深度学习 算法 测试技术
面试官在“逗”你系列:到底应该怎么爬楼梯?! | 牛气冲天新年征文
算法题是在面试过程中考察候选人逻辑思维能力、手写代码能力的一种方式,因为有一句古话说的好:“说一千道一万,不如写段代码看一看”。今天我们就来个单刀直入,直奔主题,从一个真实面试题到底怎么爬楼梯来聊一聊算法中的动态规划 。
213 0
|
算法 C++
蓝桥杯每日一刷(第四天2016)
蓝桥杯每日一刷(第四天2016)
106 0