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

并查集基础+优化(下标从0开始)

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int N = 1e5+10;
int n,m;
int fa[N];
void set(int u,int v)
{
	fa[v] = u;
}
int find(int arr[],int i)
{
	while(arr[i] != -1)
	{
		i = arr[i];	
	}	
	return i;//返回的是这个节点所在的树的根节点的下标 
} 
int main(void)
{
	cin >> n >> m;
	for(int i = 0 ; i < n ; i++)//以0为序号 
	fa[i] = -1;
	for(int i = 1 ; i <= m ; i++)
	{
		int u,v;
		cin >> u >> v;
		set(u,v);
	}
	for(int i = 0 ; i < n ; i++)
	cout << fa[i] << " ";
	int pos1,pos2;//输入像查询节点是否在同一个集合
	cin >> pos1 >> pos2; 
	if(find(fa,pos1) == find(fa,pos2)) 
	{
		cout << "Yes" << endl;
	}
	else
	{
		cout << "No" << endl;
	}
	return 0;
} 
/*
8 6
0 1
0 2
2 3
2 4
5 6
6 7
*/

路径优化

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int N = 1e5+10;
int n,m;
int fa[N];
void set(int u,int v)
{
	fa[v] = u;
}
int find(int fa[],int i)
{
	int t = i;
	while(fa[t] != -1)
	{
		t = fa[t];	
	}	
	while(i != fa[i])
	{
		int a = i;
		i = fa[i];
		fa[a] = t;
	}
	return t;//返回的是这个节点所在的树的根节点的下标 
} 
int main(void)
{
	cin >> n >> m;
	for(int i = 0 ; i < n ; i++)//以0为序号 
	fa[i] = -1;
	for(int i = 1 ; i <= m ; i++)
	{
		int u,v;
		cin >> u >> v;
		set(u,v);
	}
	for(int i = 0 ; i < n ; i++)
	cout << fa[i] << " ";
	int pos1,pos2;//输入像查询节点是否在同一个集合
	cin >> pos1 >> pos2; 
	if(find(fa,pos1) == find(fa,pos2)) 
	{
		cout << "Yes" << endl;
	}
	else
	{
		cout << "No" << endl;
	}
	return 0;
} 
/*
8 6
0 1
0 2
2 3
2 4
5 6
6 7
*/

相关文章:

  • win32汇编环境,对话框中使用月历控件示例二
  • 第二章:逻辑代数与逻辑门电路——数字世界的“语言”与“积木”
  • 【机器学习】深入浅出KNN算法:原理解析与实践案例分享
  • Dav_笔记14:优化程序提示 HINTs -4
  • 自动驾驶---基于深度学习模型的轨迹预测
  • TS语言自定义脚手架
  • 神经网络新手入门(1)目录
  • 责任链模式解析FilterChain
  • 2000-2020年年汇率平均价数据
  • Ubuntu 22.04.5 LTS 安装企业微信,(2025-02-17安装可行)
  • 二十多年前的苹果电源Power Mac G4 Mdd 电源接口
  • 宝塔docker 安装oracle11G
  • 【097】基于51单片机排队叫号系统【Keil程序+报告+原理图】
  • 4.【线性代数】——矩阵的LU分解
  • STC 51单片机63——关于STC8H的ADC通道切换问题
  • 软硬链接?
  • 附录2:组维接口信息大全
  • 过于依赖chatgpt编程会有哪些弊端?
  • IOT-CVE-2018-17066(D-Link命令注入漏洞)
  • ubuntu22.04安装kvm、virt-manage并配置SR-IOV操作
  • dede网站名称不能中文/长沙市seo百度关键词
  • 昌平装修公司哪家好/seo排名优化软件有
  • 网站url/上海网络推广排名公司
  • 小豹子韬韬是哪个网站做的/富阳网站seo价格
  • 一元购网站建设流程/seo自学网免费
  • 南昌县网页设计/昆明百度搜索排名优化