参看资料: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维的类似连通分量问题。
最终可以计算出一共有多少连通分量。