Loading...

并查集

check评论:0 条 remove_red_eye浏览量:289 change_historyTags:编程学习笔记
作者 : deco date_range日期 : 2018-05-12

qwq
就是一个简单的并查集而已
主要代码就是find那部分,union代码就一行qwq
code:

#include <bits/stdc++.h>
using namespace std;
int f[10010],n,m;
void pre()
{
    for(int i=1;i<=n;i++)
    {
        f[i]=i;
    }
} 
int find(int x)
{
    if(f[x]==x)
    {
        return x;
    }
    return f[x]=find(f[x]);
}
int main()
{
    cin>>n>>m;
    pre();
    for(int i=1;i<=m;i++)
    {
        int opt,x,y;
        scanf("%d%d%d",&opt,&x,&y);
        if(opt==1)
        {
            x=find(x);
            y=find(y);
            f[x]=y;
        }
        if(opt==2)
        {
            if(find(x)==find(y))
            {
                printf("Y\n");
            }
            else
            {
                printf("N\n");
            }
        }
    }
}

暂无评论

正在回复给  
去登陆?

   点击刷新验证码

标签云

文章留名