数据结构——并查集

AcWing - 算法基础课

Acwing------合并集合

代码如下:

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
#define fs first
#define sc second
#define endl '\n'
#define all(x) x.begin(), x.end()
typedef long long ll;
typedef pair<int, int> PII;

const int N = 1e5+10;

int p[N];

int find(int x)
{
	if(x==p[x])return x;//找到根了x==p[x]
	//否则压缩路径 把节点直接指向老祖宗(优化)
	else p[x]=find(p[x]);
}

void solve(){
    int n,m;
    cin>>n>>m;
    
    for(int i=1;i<=n;i++)p[i]=i;//初始化(每个人都是自己的祖宗)
    
    for(int i=0;i<m;i++)
    {
    	char x;cin>>x;
    	int a,b;
    	if(x=='M')
    	{
    		cin>>a>>b;
    		p[find(a)]=find(b);//两个集合合并
    	}
    	else{
    		cin>>a>>b;
    		if(find(a)==find(b))puts("Yes");
    		else puts("No");
    	}
    }
}

int main(){
	
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);

    int t;
    t=1;

    while (t--)
    {
        solve();
    }
    
    return 0;
}
相关推荐
阿虎儿4 分钟前
文档对比算法的历史演进
算法
CoderCodingNo25 分钟前
【CSP】CSP-XL 2025辽宁复赛真题-第四题, 购物(buy)
算法
nuowenyadelunwen35 分钟前
Harvard CS50 Problems Set 5
数据结构·harvard cs50·树,哈希表,链表
mjhcsp1 小时前
P14795 [JOI 2026 二次预选] 分班 / Class Division
数据结构·c++·算法
闻缺陷则喜何志丹1 小时前
【计算几何 最短路 动态规划】P1354 房间最短路问题
数学·算法·动态规划·最短路·计算几何·洛谷
girl-07261 小时前
2025.12.29实验题目分析总结
数据结构·算法
点云SLAM1 小时前
Truncated Least Squares(TLS 截断最小二乘)算法原理
算法·slam·位姿估计·数值优化·点云配准·非凸全局优化·截断最小二乘法
sin_hielo1 小时前
leetcode 840
数据结构·算法·leetcode
feifeigo1231 小时前
基于MATLAB的木材图像去噪算法实现
算法·计算机视觉·matlab
股朋公式网2 小时前
斩仙飞刀、 通达信飞刀 源码
python·算法