当前位置: 首页 > 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 的模型结构、训练方式与数据处理对比分析
  • 郴州市委常委名单/登封搜索引擎优化
  • 做房产网站多少钱/营销推广计划怎么写
  • 做网站工具 不懂代码/淘词神器
  • 怎样做自己网站robots/seo快速排名软件首页
  • 北京高端网站开发公司/北京百度seo排名点击软件
  • 如何做网课网站/搜索引擎外部优化有哪些渠道