本文整理汇总了C++中DisjointSet::make方法的典型用法代码示例。如果您正苦于以下问题:C++ DisjointSet::make方法的具体用法?C++ DisjointSet::make怎么用?C++ DisjointSet::make使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DisjointSet
的用法示例。
在下文中一共展示了DisjointSet::make方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: kruskal
long int kruskal(int m, vector<triple> &arestas){
DisjointSet<int> *ds = new DisjointSet<int>(m);
// vector<ii> result;
long int t = 0;
for(int i=0; i<m; i++)
ds->make(i, 0);
sort(arestas.begin(), arestas.end());
int e = 0, i = 0;
while(e < m-1){
int u = ds->find(arestas[i].first);
int v = ds->find(arestas[i].second);
if(ds->find(u) != ds->find(v)){
t += arestas[i].third;
// result.push_back(ii(u, v));
ds->join(u, v);
e++;
}
i++;
}
return t;
}
示例2: kruskal
inline
int kruskal(Edge E[], const int size)
{
static DisjointSet ds;
int cnt = 0, sum = 0;
REP(i, size){
ds.make(i);
}