OSDN Git Service

Update dsu.md
authorTrisolaris HD <36555123+TrisolarisHD@users.noreply.github.com>
Wed, 27 Mar 2019 09:27:13 +0000 (17:27 +0800)
committerGitHub <noreply@github.com>
Wed, 27 Mar 2019 09:27:13 +0000 (17:27 +0800)
我错了...我一定改...

docs/ds/dsu.md

index 2902414..4e4cfc9 100644 (file)
@@ -23,6 +23,7 @@ void makeSet(int size) {
 几个家族进行宴会,但是家族普遍长寿,所以人数众多。由于长时间的分离以及年龄的增长,这些人逐渐忘掉了自己的亲人,只记得自己的爸爸是谁了,而最长者(称为「祖先」)的父亲已经去世,他只知道自己是祖先。为了确定自己是哪个家族,他们想出了一个办法,只要问自己的爸爸是不是祖先,一层一层的向上问,直到问到祖先。如果要判断两人是否在同一家族,只要看两人的祖先是不是同一人就可以了。
 
 在这样的思想下,并查集的查找算法诞生了。
+
 此处给出一种 C++ 的参考实现:
 
 ```cpp
@@ -41,6 +42,7 @@ int find(int x) {
 ### 路径压缩
 
 这样的确可以达成目的,但是显然效率实在太低。为什么呢?因为我们使用了太多没用的信息,我的祖先是谁与我父亲是谁没什么关系,这样一层一层找太浪费时间,不如我直接当祖先的儿子,问一次就可以出结果了。甚至祖先是谁都无所谓,只要这个人可以代表我们家族就能得到想要的效果。 **把在路径上的每个节点都直接连接到根上** ,这就是路径压缩。
+
 此处给出一种 C++ 的参考实现:
 
 ```cpp
@@ -55,6 +57,7 @@ int find(int x) {
 
 宴会上,一个家族的祖先突然对另一个家族说:我们两个家族交情这么好,不如合成一家好了。另一个家族也欣然接受了。  
 我们之前说过,并不在意祖先究竟是谁,所以只要其中一个祖先变成另一个祖先的儿子就可以了。
+
 此处给出一种 C++ 的参考实现:
 
 ```cpp