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

2025.11.06 力扣每日一题

3607.电网维护

//核心思路是利用 并查集 管理电网的连通性,结合 有序集合维护每个电网中在线的电站,从而高效处理两种类型的查询"
const int N = 100010; // 题目最大电站数量
int p[N];   // 并查集的父节点数组,p[i]表示电站i的父节点class Solution {
public:// 主函数,处理所有查询vector<int> processQueries(int c, vector<vector<int>>& connections,vector<vector<int>>& queries) {// 遍历编号 1~c 的所有电站,将并查集数组 p[i] 设为// i(自己是自己的父节点)。for (int i = 1; i <= c; i++) {p[i] = i; // 每个电站初始为独立电网}// 遍历 connections 中的每一条电缆 [u, v],调用 merge(u, v) 函数:for (auto& edge : connections) { // 便利int x = edge[0], y = edge[1];merge(x, y); // 合并x和y所在的电网}// 键(key):电网的根节点(代表整个电网);// 值(value):set<int>(自动按编号升序排序的集合),存储该电网中所有在线电站。// 遍历 1~c// 的所有电站,找到每个电站所在电网的根节点,将电站编号插入对应根节点的// set 中(初始所有电站均在线)。unordered_map<int, set<int>> online;for (int i = 1; i <= c; i++) {int root = find(i);     // 找到电站i所在电网的根节点online[root].insert(i); // 将i加入该电网的在线集合}vector<int> ans;//存储所有类型 1 查询的结果。for (auto& query : queries) {//对 queries 中的每个查询 [type, x](x 为电站编号)int x = query[1], rx = find(x);if (query[0] == 1) {if (online[rx].count(x)) {ans.push_back(x);// x在线,自己处理} else {// x离线,找电网中最小在线电站ans.push_back(online[rx].empty() ? -1 : *online[rx].begin());}} else {online[rx].erase(x);// 从在线集合中删除x}}return ans;//将存储所有类型 1 查询结果的 ans 数组返回}// 并查集的查找(带路径压缩)int find(int x) {return x == p[x] ? x : p[x] = find(p[x]);// p[x]=find(p[x])实现了路径压缩}// 并查集的合并void merge(int x, int y) {int rx = find(x), ry = find(y);if (rx != ry) {p[rx] = ry;}}
};

好难不太会写,找的题解做的详解,记得复习!!!

http://www.dtcms.com/a/581142.html

相关文章:

  • Linux入门攻坚——53、drbd - Distribute Replicated Block Device,分布式复制块设备-2
  • 视频文件上传至服务器后浏览器无法在线播放
  • 鹤壁市建设工程交易中心网站魔改wordpress主题
  • 前端打包工具 - Rollup 打包工具笔记
  • 北大 UCLA 推出 ROCKET-2,AI 助力 3D 游戏零样本迁移
  • Linux 抓取 RAM Dump 完整指南
  • 用 Vue + DeepSeek 打造一个智能聊天网站(完整前后端项目开源)
  • 昌吉市建设局网站游戏工作室招聘信息
  • 基于MATLAB/Simulink的500kW三相光伏逆变器仿真
  • 大数据python招聘数据分析预测系统 招聘数据平台 +爬虫+可视化 +django框架+vue框架 大数据技术✅
  • 教育培训机构如何搭建自己的在线教育小程序?
  • Vue3+vant4+Webpack+yarn项目创建+vant4使用注意明细
  • 中山网站建设网站网站开发结构图
  • NumPy 简介与安装
  • AWS CloudFront 可观测最佳实践
  • 化学结构式乱码?InDraw与ChemDraw/Word/WPS兼容性完整指南
  • npm run 的工作原理和工作流程
  • 本地搭建Flinkcdc-mysql-kafka-flink-Doris实时数据集成
  • 极简风网站网站制作周期
  • 【Hadoop】hadoop3.3.1完全分布式配置
  • 如何安装 PDF Reader Pro for Mac v3.2.1.0?超简单DMG安装步骤(附安装包)
  • XML与CSS:构建现代网页的关键技术
  • 无锡品牌学会网站建设wordpress账号注册页面
  • 一次由 PageHelper 分页污染引发的 Bug 排查实录
  • 记录一个IDEA的神奇bug
  • Spark-3.5.7文档3 - Spark SQL、DataFrame 和 Dataset 指南
  • 无需 iTunes,将 iPhone 语音备忘录传输到电脑
  • 三个好思路:SQL并行化处理、混淆矩阵和特征交叉
  • 5 种无需 iTunes 将 iPad 照片传输到电脑的方法
  • 网站制作网站设计自助建站网站程序源码