尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
千问    LeetCode 3887. 增量偶权环查询 C++实现
这道题的核心是带权并查集将环边权和为偶数转化为环上边权异或和为 0通过维护每个节点到根的异或距离来判断新边是否会形成奇权环。核心思路1. 问题转化边权为 0 或 1环的边权和为偶数 ⟺ 环上所有边权的异或和为 02. 维护目标如果图中所有环的异或和都为 0那么任意两点间任意路径的异或和都是唯一确定的与路径无关3. 带权并查集用 fa[x] 记录父节点dis[x] 记录 x 到父节点路径上的边权异或和。通过路径压缩find(x) 后 dis[x] 就是 x 到根的异或距离4. 判断逻辑对于边 (u, v, w)若 u、v 已在同一集合检查 dis[u] ^ dis[v] ^ w 是否为 0为 0 说明新环异或和为偶数可加入否则会产生奇权环跳过C 实现class Solution {vectorint fa, dis; // dis[x]: x 到 fa[x] 路径上的边权异或和// 带路径压缩的 find调用后 dis[x] 变为 x 到根的异或距离int find(int x) {if (fa[x] ! x) {int root find(fa[x]);dis[x] ^ dis[fa[x]]; // 累积异或距离fa[x] root;}return fa[x];}public:int numberOfEdgesAdded(int n, vectorvectorint edges) {fa.resize(n);dis.assign(n, 0);for (int i 0; i n; i) fa[i] i;int count 0;for (auto edge : edges) {int u edge[0], v edge[1], w edge[2];int ru find(u), rv find(v);if (ru rv) {// 已在同一集合检查新环的异或和// 环的异或和 dis[u] ^ dis[v] ^ wif ((dis[u] ^ dis[v] ^ w) 0) {count; // 偶权环可以加入}// 否则产生奇权环跳过} else {// 不在同一集合合并不会形成环// 需要让 dis[u] ^ dis[v] ^ w 0 成立// 即 dis[ru] dis[u] ^ dis[v] ^ wdis[ru] dis[u] ^ dis[v] ^ w;fa[ru] rv;count;}}return count;}};关键点解析- 路径压缩时的异或更新dis[x] ^ dis[fa[x]] 是因为 x 到根的异或距离 x 到旧父节点的异或 ⊕ 旧父节点到根的异或- 合并时的权重设置合并 ru 和 rv 时设置 dis[ru] dis[u] ^ dis[v] ^ w保证合并后 u 和 v 之间的异或距离恰好等于 w- 时间复杂度O(m · α(n))其中 m 是边数α 是反阿克曼函数近似线性- 空间复杂度O(n)示例验证以 n3, edges[[0,1,1],[1,2,1],[0,2,1]] 为例1. 边 (0,1,1)0 和 1 不在同一集合合并count12. 边 (1,2,1)1 和 2 不在同一集合合并count23. 边 (0,2,1)0 和 2 已在同一集合环异或和 dis[0]^dis[2]^1 1^1^1 1奇数跳过最终返回 2与预期一致。需要我帮你整理一份带权并查集异或/加法的通用模板吗遇到类似题可以直接套用。
RELATED

相关推荐

SSH终端的剪切粘贴和移动的区别

SSH终端的剪切粘贴和移动的区别

背景 由于很多工具本身就不支持SSH协议远程的移动功能,所以很多网友对于SSH的移动没有感触,但是移动的性能远远高于剪切和复制,而且对于文件的Linux权限属性保存的最为完整,所以很多场景下是极为有用的。今天就使用DESK倚天剑比较…

📅 2026/9/2 3:47:13
Spring Boot多模块项目配置加载难题:从原理到实战解决方案

Spring Boot多模块项目配置加载难题:从原理到实战解决方案

最近在开发一个多模块的Spring Boot项目时,遇到了一个令人头疼的问题:项目启动后,部分模块的配置始终无法加载,控制台反复报错,而日志却指向一个看似无关的“地狱之地”。经过一番排查,发现问题根源在于Spr…

📅 2026/9/23 8:16:44
王虹、邓煜、张益唐、韦东奕四位数学家研究方向预测

王虹、邓煜、张益唐、韦东奕四位数学家研究方向预测

结合四位数学家的核心成果、学术履历、已公开的研究动向背景,基于他们当前的研究基础和领域内的前沿共识,对2026年菲尔兹奖得主王虹、邓煜,以及同领域顶尖学者张益唐、韦东奕的未来研究方向做出如下预测: 一、王虹 未来研究方向预…

📅 2026/9/25 15:47:17
MORE NEWS

更多资讯

📰

链游2.0:构建可持续的区块链游戏经济模型与技术架构

1. 链游行业现状与困境剖析链游(区块链游戏)作为GameFi领域的重要分支,近年来经历了从狂热到冷静的市场周期。2021年Axie Infinity的爆发让市场看到了"Play to Earn"模式的潜力,但随后大量仿盘项目的崩盘也暴露了行业深…

📰

从print大法到线上问题排查:caveman调试法为什么至今仍是有效底牌

那天晚上快12点,监控群里连着弹了三条报警,内容是线上某个接口的P99延迟从300毫秒直接飙到3秒,可用性掉了一个点。我登上生产环境看了半天,没有分布式追踪、没有链路ID、日志也只有零星几条,整个服务就像一口黑井。折腾…

📰

AI Agent任务完成微信通知实现方案

1. 为什么AI Agent需要任务完成通知?当我们在开发AI Agent自动化流程时,最常遇到的痛点就是:不知道任务什么时候跑完。想象一下,你部署了一个耗时较长的数据分析Agent,或者一个定期爬取数据的Agent,总不能一…

📰

基于CANN架构的智能视频分析系统设计与优化

1. 项目概述在AI技术快速落地的今天,智能视频分析已成为计算机视觉领域最具商业价值的应用方向之一。而CANN(Compute Architecture for Neural Networks)作为专为神经网络计算设计的异构计算架构,正在为这一领域提供强大的底层支持…

📰

营销技能体系拆解:从执行到操盘手的能力清单

做营销这些年我踩过最大的坑,就是以为营销 skills 就是会写文案、会投广告、会做活动。直到我带团队、带项目,看着一个又一个方案从立项到扑街,才慢慢想明白一件事:营销这个行当,表面上拼的是创意和资源,实…

📰

hyperframes参考架构实战:从GPU利用率到分布式训练优化

最近圈里好几个群都在聊 hyperframes,有人拿它跟传统 AI 训练方案比,有人拿它跟云上容器化方案比,还有人直接问“这东西到底是不是又一个套壳框架”。我因为工作原因,正好带团队做过一轮相关的性能验证和落地评估,从硬…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬