文章

82

粉丝

343

获赞

27

访问

661.3k

头像
并查集实现
P1367 吉林大学机试题
发布于2021年1月12日 19:30
阅读数 6.9k

#include <iostream>
using namespace std;
const int maxn=1050;
int f[maxn];
int n,m;
void init(int n){
    for(int i=1;i<=n;i++)
        f[i]=i;
}
int find(int x){
    if(f[x]==x) return x;
    else return find(f[x]);
}
void merge(int x,int y){
    x=find(x);
    y=find(y);
    if(x!=y){
        f[y]=x;
    }
}
int main(){
    while(scanf("%d %d",&n,&m)!=EOF){
        int flag=0;
        init(n);
        while(m--){
            int x,y;
            cin>>x>>y;
            merge(x,y);
        ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发