题解 1873: 蓝桥杯2017年第八届真题-合根植物

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

并查集-合根植物(c++)

合根植物最多为m*n,每次合根使数量减1;并查集将不同编号同一植物归为统一的根```cpp#includeusingnamespacestd;constintN=1000*1000+5;ints[N];intans=0;intfind(intx){if(x!=s[x]){s[x]=find(s[x])

1873: 蓝桥杯2017年第八届真题-合根植物-----C++代码

摘要:解题思路:并查集思想:            1.初始化:每个结点的父亲结点首先设为它本身。            2.路径压缩(解决特殊情况下的树的层次深而造成的复杂度增大的问题)         ……
优质题解

蓝桥杯2017年第八届真题-合根植物(并查集C/C++)

解题思路:这道题可以使用并查集来解决。并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。我们可以将每个小格子看作是一个节点,然后将合根的小格子的节点连在一起,这样就形成了一棵树。我们在构建并查集时,可以将每个节点的父节点设置为它本身,这样可以方便我们查找每个节点的根节点。

蓝桥杯2017年第八届真题-合根植物 (C++代码)

解题思路:并查集题,首先了解并查集,统计集合数用一个bool型数组isRoot[maxn]记录每个结点是否作为某个数的根节点,当处理完数据之后就可以遍历所有元素,令他所在集合的根结点为true,最后累加就能得到根节点数(即植物株数)。注意事项:一定要初始化参考代码:#includeus