题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232
HDU1232这道题属于并查集
思路:
城市之间由道路连接,相连的城市可以看做一个集合,如:a、b相连,c、d相连,则a和b属于集合A,c和d属于集合B。之后又有人告诉你b和e相连,那么就把e加入到集合A中,以此类推。然后不同集合若是想组成一个大的集合,即集合A和集合B若相连接在一起,那随便在两个集合中分别找两个城市连接在一起就可以了。
在这里稍微讲解一下并查集,并查集一般由一个整形数组和两个函数构成,其中数组pre[x]记录的是x的前导节点,若把并查集中的节点看做数的话,那pre[x]数组中记录的就是x的父节点。

本文介绍了HDU1232问题的解决方案,该问题涉及并查集数据结构。文章详细阐述了并查集的概念,包括如何通过pre[x]数组记录节点的父节点,以及利用find函数查找节点根节点的方法。同时,讨论了通过join函数连接城市,以及路径压缩优化技巧,以提高查询效率。最后,提供了完整代码以展示具体实现。
&spm=1001.2101.3001.5002&articleId=47296585&d=1&t=3&u=d2ea4adb8f4b4d4695cde40e1439b9c1)
300

被折叠的 条评论
为什么被折叠?



