【4.11日题解】——亲戚(c代码表述)

简介: 【4.11日题解】——亲戚(c代码表述)

☘前言☘

今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0

4.11日每日一题——亲戚


🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人

✨联系方式:2201891280(QQ)

⏳全文大约阅读时间: 20min


全文目录

☘前言☘

解题思路

📑写在最后

P1551 亲戚


解题思路

挺好的题目,本来没看过并查集的概念,这次了解了一下,其实思路就是每个节点都保存自己的最祖先的那个,如果最终两个祖先相同就直接返回Yes,否则就是No,然后其实每个节点保存自己的最祖先的那个节点信息就好了,所以在查找祖先的时候可以把数组中的元素直接标记加速。


#include <stdio.h>
int f[5010];
int Find(int x){
    if(f[x] == x)   return x;
    else return f[x] = Find(f[x]);
}
int main(){
    int m,n,k;
    scanf("%d %d %d",&m,&n,&k);
    for(int i = 1;i<= m;++i)    f[i] = i;   //指向自己
    while(n--){
        int o,k;
        scanf("%d %d",&o, &k);
        f[Find(o)] = Find(k);//合并两个并查集
    }
    while(k--){
        int o,k;
        scanf("%d %d",&o, &k);
        Find(o) == Find(k) ? printf("Yes\n") : printf("No\n");
    }
    return 0;
}


相关文章
|
11月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
JavaScript 前端开发 jenkins
【前端】vue项目打包Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest解决方案
【前端】vue项目打包Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest解决方案
2837 0
|
人工智能 运维 自然语言处理
从海量信息中脱颖而出:Workflow智能分析解决方案,大语言模型为AI科技文章打造精准摘要评分体系(总篇章)
【8月更文挑战第10天】从海量信息中脱颖而出:Workflow智能分析解决方案,大语言模型为AI科技文章打造精准摘要评分体系(总篇章)
从海量信息中脱颖而出:Workflow智能分析解决方案,大语言模型为AI科技文章打造精准摘要评分体系(总篇章)
|
Dart Android开发 开发者
常用框架分析(7)-Flutter
常用框架分析(7)-Flutter
数组中插入一个数字
数组中插入一个数字
113 0
midjourney 角色一致性, 衣服和脸, 我全都要, 也可以只保持脸部, 这通常用于模特换衣服
保持人物一致性的前提下, 可以做到换衣服, 换脸, 换背景, 换姿势, 统统换一遍,蓦然回首, 那人依旧还是那个人
497 0
|
数据采集 SQL 算法
你真的懂指标体系吗
你真的懂指标体系吗
|
Java Linux 虚拟化
|
机器学习/深度学习 移动开发 算法
1316:【例4.6】数的计数(Noip2001)
1316:【例4.6】数的计数(Noip2001)
495 0
|
前端开发
前端学习笔记202306学习笔记第四十三天-await关键字
前端学习笔记202306学习笔记第四十三天-await关键字
76 0