本文整理汇总了C++中DisjointSet::unite方法的典型用法代码示例。如果您正苦于以下问题:C++ DisjointSet::unite方法的具体用法?C++ DisjointSet::unite怎么用?C++ DisjointSet::unite使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DisjointSet
的用法示例。
在下文中一共展示了DisjointSet::unite方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: kruskal
int kruskal(int N, vector<Edge> edges)
{
int totalCost = 0;
sort(edges.begin(), edges.end());
DisjointSet dset = DisjointSet(N + 1);
int source;
int target;
for (int i = 0; i < edges.size(); i++) {
Edge e = edges[i];
if (!dset.same(e.source, e.target)) {
//MST.push_back(e);
totalCost += e.cost;
dset.unite(e.source, e.target);
}
}
return totalCost;
}
示例2: main
int main(){
int n;
long q;
scanf(" %d %ld", &n, &q);
DisjointSet ds = DisjointSet(n);
for(long i=0; i<q; ++i){
int com, x, y;
scanf(" %d %d %d", &com, &x, &y);
if(com==0) ds.unite(x,y);
else if(com==1){
if(ds.same(x,y)) printf("1\n");
else printf("0\n");
}
}
}