zoukankan      html  css  js  c++  java
  • 洛谷 P3367 【模板】并查集

    洛谷 P3367 【模板】并查集

    洛谷传送门

    题目描述

    如题,现在有一个并查集,你需要完成合并和查询操作。

    输入格式

    第一行包含两个整数 N,MN,M ,表示共有 NN 个元素和 MM 个操作。

    接下来 MM 行,每行包含三个整数 Z_i,X_i,Y_iZ**i,X**i,Y**i

    当 Z_i=1Z**i=1 时,将 X_iX**i 与 Y_iY**i 所在的集合合并。

    当 Z_i=2Z**i=2 时,输出 X_iX**i 与 Y_iY**i 是否在同一集合内,是的输出 Y ;否则输出 N

    输出格式

    对于每一个 Z_i=2Z**i=2 的操作,都有一行输出,每行包含一个大写字母,为 Y 或者 N


    题解:

    并查集模板,

    代码:

    #include<cstdio>
    using namespace std;
    const int maxn=1e4+4;
    int fa[maxn];
    int find(int x)
    {
    	return x==fa[x]?x:fa[x]=find(fa[x]);
    }
    void merge(int x,int y)
    {
    	int fx=find(x);
    	int fy=find(y);
    	if(fx!=fy)
    		fa[fx]=fy;
    }
    int main()
    {
    	int n,m;
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    		fa[i]=i;
    	while(m--)
    	{
    		int opt,x,y;
    		scanf("%d%d%d",&opt,&x,&y);
    		if(opt==1)
    			merge(x,y);
    		else
    		{
    			int fx=find(x);
    			int fy=find(y);
    			if(fx==fy)
    				printf("Y
    ");
    			else
    				printf("N
    ");
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    UIButton组件
    九宫格
    window对象的创建
    UILabel的属性及方法
    javascript相关,格式转化
    MySQL分区分表相关知识摘要
    redis简单笔记
    PHP常用设计模式
    在nginx上面部署多个项目
    把自己的项目上传到svn上面
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14077960.html
Copyright © 2011-2022 走看看