[CF] PrinceOfPersia's blog: Data structures
(codeforces.com)
sayuan
積分 2
需要的話我可以針對其中一些主題做說明,但請不要說全部 XD
先推薦一下 Disjoint Set1,它的原理跟實作都非常的簡單。 基本的用法像是:給一堆 vertex 和 edge,詢問兩個 vertex 之間是否 connected。(若不用 Disjoint Set 的話,就得用 BFS 或 DFS 了)
然後跟 Kruskal's algorithm2(Minimum Spanning Tree) 非常速配。 記得以前學到 Kruskal's 的時候還覺得這個演算法相當雞肋,因為沒有容易的方法判斷兩個 vertex 是否屬於同一個 component,後來看到了 Disjoint Set 才驚為天人 :p