并查集 - 便于查找

xiaoxiao2021-02-27  183

基本模板:

/*UF 模板*/ class UF { public: /*初始化*/ void UF(int n) { id.reset(n); for(int i=0; i < n; i++) { id[i] = i; } }; /*连接*/ boolean connect(int i,int j) { return root(i) == root(j); } /*并集合*/ void unionSet(int p, int q) { int i = root(p); int j = root(q); id[i] = j; } private: int root(int i) { while(i != id[i]) { id[i] = id[id[i]]; i = id[i]; } return i; } private: vector<int> id; };
转载请注明原文地址: https://www.6miu.com/read-12473.html

最新回复(0)