学习笔记——并查集
2018-09-28 19:53
399 查看
要死 这个并查集我学了至少3遍 这应该是我的第四遍了
关于算法原理有一个非常精彩的拿武林江湖做比喻的博客写的非常nice 我这也不多赘述 就写一点自己的理解
其实这个算法真的不是难的 基本道理就是找一串数字的头在哪里(学习笔记自己懂就好= =)我学的好像就是最基础的(然而忘了一遍又一遍)
两个简单的函数
[code]void unionn(int u, int v) { int a = find(u); int b = find(v); if (a != b) { f[a] = b; } }
这个函数是并 定义a b 存放u v的源头 如果 a b不同源 就让a作为b的源头 然后再查b为源的过程中 就会逐渐把以b为源的数字的源头改为a 就f
=a 这种感觉……
[code]int find(int s) { if (s != f[s]) f[s] = find(f[s]); return f[s]; }
这个函数是查 s!=f[s] 意思就是s另有其他的源头 然后查f[s]的源头在哪 一直到最终s==f[s] 然后 返回的是f[s] 也就是作为源头的s 然后 其他的f
都会变成s
所以其实他在边赋值边递归
为什么这个递归会比dfs还难理解啦……
阅读更多相关文章推荐
- 并查集 学习笔记
- 例题:[codevs1073/tyvj1251]家族 并查集 学习笔记
- 并查集学习笔记1
- 高级数据结构设计--并查集及实现学习笔记(有趣篇)
- HDU1213 & 并查集的一些学习笔记
- 并查集学习笔记2
- 并查集学习笔记
- 并查集的学习笔记
- 并查集学习笔记
- 并查集 学习笔记
- BZOJ4537 [Hnoi2016]最小公倍数 (可撤销&&可持久化并查集学习笔记)
- 高级数据结构设计--并查集及实现学习笔记(有趣篇)
- 高级数据结构设计--并查集及实现学习笔记(有趣篇)
- 算法:并查集学习笔记
- 高级数据结构设计--并查集及实现学习笔记(有趣篇)
- 【算法学习笔记】44. 并查集补充 SJTU OJ 3015 露子的星空
- 算法分析学习笔记(一) - 动态连通性问题的并查集算法(上)
- C#学习笔记:并查集
- 并查集学习笔记
- hibernate学习笔记