众所周知,并查集是用来查看两个人是不是有关系的。举个例子,奥特曼的故事。首先奥特曼有平成时期的奥特曼还有昭和时期的奥特曼,平成时期的奥特曼有迪迦奥特曼 戴拿奥特曼 盖亚奥特曼 高斯 阿古茹 高斯 雷杰多 梦比优斯等    昭和奥特曼有 初代 赛文 泰罗 艾斯 杰克 雷欧 奥特之王等  小吴非常喜欢奥特曼,所以想要了解一下,现在有一个难题那就是,给你两个奥特曼,如何去判断这两个奥特曼是不是一个时期的呢。于是小吴就去找她帅气又聪明的男朋友小鲍帮忙,小鲍就给她想到了一个方法,那就是用并查集去解决这个事情。并查(找爹)集 就是用来解决这种问题的。在并查集中 我们给每一个数字都存储了自己的爹地的代号,通过自己的爹地的代号网上找 可以找到爹地的爹地的代号,最后可以找到祖先的代号。如果两个角色的祖先代号相同,那么恭喜你,两个奥特曼是属于一个时代的,如果祖先不是一个代号 那么他们就不是一个时代的。下面就给大家附上找爹地的代码以及初始化爹地的代码

int findfather(int x){  //找爹的代码if(father[x]==x)return x;return findfather(father[x]);
}
void init()   //刚开始每个人都是自己的爹,然后根据输入去判断爹。
{for(i=0;i<n;i++)father[i]=i;
}

有一天,M78星云出现问题,昭和时期和平成时期合并了,他们都变成了远古奥特曼,那么怎么才能把他们变成一个时期的奥特曼呢?聪明的小鲍又想起了 并查集可以并也可以查,就运用并的操作把他们合在一起了,那怎么才能合并呢,那可太简单了,只需要把一个时期的奥特曼的祖先节点指向另一个时期的祖先节点。因为我们有记录爹地的数组,只需要把一个时期的祖先变成另一个时期祖先的儿子就可以了 下附代码:

void merge(int a,int b){if(a!=b)father[a]=b;  //该地方可以进行优化 elsecout << "same father" << endl;//两个祖先一样 不用合并
}

通过这一系列操作 奥特曼就成为了一个大家庭了

注:后序会更新并查集的优化代码以及优化思路。

并(zhao)查(die)集详解以及其优化版本相关推荐

  1. 并查集详解 ——图文解说,简单易懂(转)特别好玩

    并查集详解 --图文解说,简单易懂(转) 2016年03月10日 17:38:08 阅读数:6931 标签: 并查集数据结构并查集算法图文解说 更多 个人分类: 算法--并查集 并查集是我暑假从高手那 ...

  2. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

  3. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

    [linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...

  4. php各种编码集详解和在什么情况下进行使用 [php 字符集 显示]

    http://blog.cnsunrun.com/member/blog/blog_info/30/84 ----------------------------------------------- ...

  5. 编程题50 习题6-8 单词首字母大写【浙大版《C语言程序设计(第4版)》题目集 详解教程】

    编程题50 习题6-8 单词首字母大写[浙大版<C语言程序设计(第4版)>题目集 详解教程] 原题链接:习题6-8 单词首字母大写 (pintia.cn) 参考答案 #include< ...

  6. [MyBatis]-resultMap结果映射集详解

    resultMap结果映射集详解 resultmap是mybatis中最复杂的元素之一,它描述如何从结果集中加载对象,主要作用是定义映射规则.级联的更新.定制类型转化器. resultmap构成元素 ...

  7. CRC校验查表法详解

    CRC校验查表法详解 算法原理 基础计算 查表法原理及计算 查表法中的表 CRC校验中数据逆序 CRC校验中的其它参数 算法原理 CRC(Cyclic Redundance Check)循环冗余校验, ...

  8. php各种编码集详解和以及在什么情况下进行使用 发布:mdxy-dxy 字体:[增加 减小] 类型:转载 字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符集是多个字符的集

    php各种编码集详解和以及在什么情况下进行使用 发布:mdxy-dxy 字体:[ 增加 减小] 类型:转载 字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 字符集是多个字符的 ...

  9. 【阿里云课程】详解深度学习优化:泛化与正则化,学习率与最优化

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中两节,介绍如下: 第1节:泛化与正则化 第1节课内容为:泛化与正则化,讲述泛化的概念与重要性,各种正则化方法,包括显 ...

  10. 【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》

    [肝帝一周总结:全网最全最细]☀️Mysql 索引数据结构详解与索引优化☀️<❤️记得收藏❤️> 目录

最新文章

  1. Plotly_绘图画图作图交互
  2. s3-1 数据链路层概述
  3. 使用多个DNS供应商以缓解DDoS攻击
  4. jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server
  5. 前端学习(552):api
  6. UVA 10555 - Dead Fraction(数论+无限循环小数)
  7. 超级实用的设计类网址导航--一流设计导航
  8. ffmpeg获取视频截图
  9. 直接拿来用!一文学会 Docker 镜像!
  10. Linux之diff命令
  11. dotnet new -i Microsoft.Maui.Templates
  12. Luogu2572 [SCOI2010]序列操作
  13. Openwrt修改flash大小
  14. git clean使用方法
  15. Java-获取本地主机的域名和主机名(net)
  16. STM32f407程序移植到GD32F407
  17. 新东方 词根词缀 excel_词根词缀记忆英语单词,高效,不易遗忘
  18. 微信小程序——new Date()显示NAN + 正则表达式
  19. c语言巡线程序,小车巡线程序
  20. 自古猛兽皆独行,唯有牛羊结成群

热门文章

  1. linux系统是不是国产的,LINUX是什么系统,是国产软件吗
  2. linux运行酷q,Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
  3. 记:应聘赛意 测试工程师
  4. 用 Python 快速追踪基金的收益情况 | Python财经实践
  5. 盖世兔I9100刷机心得
  6. 事件解析树Drain3使用方法和解释
  7. PCU-285锡膏粘度计优点及特点
  8. 统一社会信用代码18位数字分别代表什么含义
  9. java实现别踩白块儿,jQuery实现别踩白块儿网页版小游戏
  10. CentOS-6.3安装配置Tomcat-7 - Constantin - 博客园