当前位置: 首页 > article >正文

【数据结构 | C++】并查操作

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

输入格式:
第一行包含两个整数 N,M ,表示共有 N 个元素和 M 个操作。
接下来 M 行,每行包含三个整数 zi,xi,yi 。
当 zi=1 时,将 xi与yi所在的集合合并。
当 zi=2 时,输出xi与yi 是否在同一集合内,是的输出 Y ;否则输出 N.

输出格式:
对于每一个zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N 。

输入样例:
4 7
2 1 2
1 1 2
2 1 2
1 3 4
2 1 4
1 2 3
2 1 4
输出样例:
N
Y
N
Y

#include<iostream>
using namespace std;
const int N = 2e5 + 10;
int fa[N];
int n, m, p1, p2, p3;
int find(int k)
{
	if (fa[k] == k)return k;
	return fa[k] = find(fa[k]);
}
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		fa[i] = i;
	}
	for (int i = 1; i <= m; i++)
	{
		cin >> p1 >> p2 >> p3;
		if (p1 == 1)
		{
			fa[find(p2)] = find(p3);
		}
		else
			if (find(p2) == find(p3))
				printf("Y\n");
			else
				printf("N\n");
	}
	return 0;
}

http://www.kler.cn/a/409493.html

相关文章:

  • Centos-stream 9,10 add repo
  • 使用go实现流式输出
  • 自然语言处理: RAG优化之Embedding模型选型重要依据:mteb/leaderboard榜
  • Python爬虫项目 | 二、每日天气预报
  • Linux的开发工具(三)
  • manin动画编程(安装+入门)
  • IDEA+Docker一键部署项目SpringBoot项目
  • 面试:请阐述MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用
  • git使用(二)
  • 如何解决pdf.js跨域从url动态加载pdf文档
  • 重构代码之将引用类型更改为值类型
  • H.265流媒体播放器EasyPlayer.js播放器提示MSE不支持H.265解码可能的原因
  • 信创改造 - TongRDS 替换 Redis
  • RedHat系统配置静态IP
  • 后端开发如何高效使用 Apifox?
  • EasyExcel: 结合springboot实现表格导出入(单/多sheet), 全字段校验,批次等操作(全)
  • git常用命令以及注意事项总结
  • Spring boot常用注解和作用
  • 【jvm】为什么java是半编译半解释型语言
  • Spring Boot 和 Spring Cloud 构建一个完整的微服务架构——在线购物系统
  • Azkaban部署
  • Anaconda 的下载地址
  • MySQL学习/复习10视图/用户/权限/语言连接数据库
  • 【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
  • Client 操作索引库和文档(PHP版)
  • 后台发货时用户收到【商品确认收货提醒】