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

并查集 - ## 并查集

Description

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


Input

第一行包含两个整数 \(N, M\),表示共有 \(N\) 个元素和 \(M\) 个操作。

接下来 \(M\) 行,每行包含三个整数 \(Z_i, X_i, Y_i\)

  • \(Z_i = 1\) 时,将 \(X_i\)\(Y_i\) 所在的集合合并。
  • \(Z_i = 2\) 时,输出 \(X_i\)\(Y_i\) 是否在同一集合内:
    • 如果是,输出 Y
    • 否则输出 N

Output

对于每一个 \(Z_i = 2\) 的操作,输出一行,每行包含一个大写字母,为 Y 或者 N


Sample

Input

4 7
2 1 2
1 1 2
2 1 2
1 3 4
2 1 4
1 2 3
2 1 4

Output

N
Y
N
Y

数据范围

  • \(1 \leq N \leq 2 \times 10^5\)
  • \(1 \leq M \leq 10^6\)
  • \(1 \leq X_i, Y_i \leq N\)
  • \(Z_i \in \{1, 2\}\)

#include <bits/stdc++.h>
using namespace std;
int n,m,Fa[200005];
int GetFa(int k) {if (k==Fa[k]) return k;return Fa[k]=GetFa(Fa[k]);
}
void Merge(int x,int y) {int fx=GetFa(x);int fy=GetFa(y);if (fx!=fy) Fa[fy]=fx;
}
int main(){cin>>n>>m;for (int i=1;i<=n;i++) Fa[i]=i;for (int i=1;i<=m;i++) {int z,x,y;cin>>z>>x>>y;if (z==1) Merge(x,y);if (z==2) {if (GetFa(x)!=GetFa(y)) cout<<"N\n";else cout<<"Y\n";}}return 0;
}
http://www.jsqmd.com/news/390335/

相关文章:

  • 数据产品监控:实时告警与性能追踪系统
  • 为什么使用 Web Services?
  • AI应用架构师的企业级AI平台架构设计的实践探索
  • Bootstrap5 网格系统
  • 大数据清洗面试经验:字节跳动数据开发岗,数据清洗考点总结
  • 基于uni-app+Nodejs+vue3的校园失物招领微信小程序
  • AI应用架构师带你深挖AI驱动质量管理与业务融合点
  • 第七章 LoRA训练稳赢指南:数据集工程“三件套“全解析
  • 别再记混了!阻止事件冒泡≠防止事件冒泡(附趣味解析)
  • 构建未来教育新生态:智慧校园信息系统方案关键模块建设浅析
  • 构建未来教育新生态:智慧校园信息平台方案关键模块建设浅析
  • 构建未来教育新生态:智慧校园解决方案关键模块建设浅析
  • g4f(GPT4Free)下哪些免费大模型好用? 竟然有ernie了!
  • 背包问题 - I NEED A OFFER!
  • Python中的素材序列之元组
  • 年味还能这样打开?魔乐社区新年征文赛今日启动,等你来战
  • 大年初一 魔乐社区给你发算力红包啦!
  • 1美金/小时,更快更强更智能,为真实世界生产力而生!MiniMax M2.5开源并上线魔乐社区
  • GLM-5上线魔乐社区,基于昇腾的模型推理+训练部署教程请查收!
  • 叮~~Qwen3.5上线魔乐社区,基于昇腾的部署教程来了
  • Linux如何设置 /etc/init.d 类型的服务开机自启
  • Linux service 命令详解
  • 今天终于搞懂了:为什么 Java 的 main 方法必须是 public static void?
  • 闲话
  • 2026.2.17
  • 元控制框架下的推理资源动态分配与优化策略
  • 昭和物语
  • Kubernetes编程/Operator专题【左扬精讲】—— Operator 开发实战项目2 —— 实现阿里云定时弹性伸缩器
  • 树哈希
  • Java 工程师必知必会的 hashCode 和 hash 算法