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

(并查集 省份数量)leetcode 547

纯套模板

模板


返回之前先让所有的下标找一遍自己的最大祖先
for(auto &t:s)
{
    t=findf(t);
    
}





看蓝桥杯的书和视频
#include <iostream>
#include<vector>
#include<queue>
#include<unordered_map>
using namespace std;
const int N = 1e4;
int s[N];
//一般的下标都是从0开始的,所以把根节点改为-1更合适
//可以理解为并查集的根在下面,而树的根在上面
int findf(int i)
{
	if (i == s[i])
		return i;
	else
	{
		return s[i]=findf(s[i]);
	}
}

void andf(int x,int y)
{
	x = findf(x);
	y = findf(y);
	s[x] = y;
}
//每次只改变当前值最大祖先的亲戚关系,这样同时改变了子女的亲戚关系


int main()
{
	int n, m, p;
	cin >> n >> m >> p;
	for (int i = 1;i <= n;i++)
	{
		s[i] = i;
	}
	while (m)
	{
		int x;
		int y;
		cin >> x>> y;
		andf(x, y);

		m--;
	}
	while (p)
	{
		int x, y;
		cin >> x >> y;
		if (findf(x) != findf(y))
			cout << "No" << endl;
		else
			cout << "Yes" << endl;
		p--;
	}


   
	return 0;
}

答案

class Solution {

    vector<int>s;
int findf(int i)
{
	if (s[i] == i)
		return i;
	else
		return s[i] = findf(s[i]);
}

    
public:
    int findCircleNum(vector<vector<int>>& isConnected) {
        int n = isConnected.size();
s = vector<int>(n);
for (int i = 0;i < n;i++)
{
	s[i] = i;
}

for (int j = 0;j < n;j++)
{
	for (int i = 0;i < n;i++)
	{
		if (i == j)
			continue;
		if (isConnected[i][j] == 1&&isConnected[j][i]==1)
		{
			int x = findf(i);
			int y = findf(j);
			isConnected[j][i]=0;
			s[x] = y;	
		}
	}
	
}
for(auto &t:s)
{
    t=findf(t);
    
}
unordered_set<int> ans(s.begin(), s.end());

return ans.size();
    }
};

相关文章:

  • Sqladmin - FastAPI框架下一键生成管理后台
  • Git 钩子:特定操作脚本
  • 深入掌握Spring AOP:从原理到实战的完整指南
  • 在 Qt 中,不带参数或整形的参选的信号能够从 std::thread 发送成功,而带枚举离线的信号却发送失败
  • cocos creator 笔记-路边花草
  • java8循环解压zip文件---实现Excel文件数据追加
  • 慧通测控汽车智能座舱测试技术
  • k8s基础知识总结node+pod(上)
  • CSS语言的双向链表
  • 4、pytest常用插件
  • word中指定页面开始添加页码
  • Python(4)Python函数编程性能优化全指南:从基础语法到并发调优
  • Java设计模式之访问者模式
  • 计算机网络 - OSI 七层模型
  • 笔记:分享如何使用github静态页面搭建个人页面
  • 【2025】基于springboot+uniapp的企业培训打卡小程序设计与实现(源码、万字文档、图文修改、调试答疑)
  • 专访成都昭音科技Jackal:AI内容营销助力中企走向全球
  • 鸿蒙学习笔记(2)-国际化配置、ArkTS简述
  • 【Javaweb】b站黑马视频学习笔记(导览)
  • 多模态大模型Qwen 和 Qwen2 的模型结构、训练方式与数据处理对比分析
  • wordpress添加版权链接/保定seo推广外包
  • 公司网站建设价格多少/南京seo网站优化
  • 绵阳低价网站建设/关键词优化工具
  • 电脑做网站主机空间/图片识别
  • 毕业设计做网站大小有什么要求/公众号怎么开通
  • 双鸭山网站建设企业/北京seo公司工作