并查集【题型学习1-基础应用】

本文介绍了并查集在解决连通分量问题中的应用,涉及多个编程竞赛题目,包括判断图中回路、求连通分量数目以及判断图是否为树等。通过实例分析并查集的使用方法和解决问题的关键点,如二维并查集的实现和判断图是否为树的等价条件。
摘要由CSDN通过智能技术生成

参看资料:https://blog.csdn.net/u013480600/article/details/44131453


1》HDU 1198 Farm Irrigation【连通分量数目 二维形式】

https://blog.csdn.net/u013480600/article/details/20799843

给你一个N*M的矩阵,由下面11种格子组成,每个格子互联的部分不同(比如A如果放在C正下面,那么A与C是连通的),问你所给矩阵一共有几个连通分量。

具体组合后图形的例子如下图:

Figure2有3个连通分量

分析:

【即两相邻元素是否连通要再判断两元素内部相连的情况,即A-K这11种元素内部的“接口方向”需要记录一下;

且最大的不同是,标识一个元素需要x,y两个变量,与以往的只用编号(一维)的存储方式不同,查找标记元素的方式也会不同】

        从上到下,从左到右一次遍历每一个格子。如果当前格子的上(下左右)方还有另一个格子且它们在交界处相连,那么就合并这两个格子所属的连通分量。

        合并连通分量时可以用一维的并查集,也可以用二维的并查集代码。AC代码(新)中就是用的二维的并查集代码,这样我们就省得将矩阵的每个格子映射到一个整数上了。同理我们可以用类似的方式处理3维到n维的类似连通分量问题。

        最终可以计算出一共有多少连通分量。
 

2》UVA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值