并查集模板
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int c[30001];int fin
·
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int c[30001];
int find(int x)
{
/* 超时
if(c[x]==x)
return x;
else
return find(c[x]);
*/
/* 节省时间
if(c[x]==x)
return x;
else
return c[x]=find(c[x]); // 剪枝
*/
return c[x]==x?x:c[x]=find(c[x]); //节省时间
}
void u(int x,int y)
{
int a=find(x);
int b=find(y);
if(a!=b)
c[b]=a;
}
更多推荐
已为社区贡献2条内容
所有评论(0)