Kimi LeetCode 3544. 子树反转和 Rust实现
📅 2026/7/12 0:09:31
👁️ 次浏览
这是 LeetCode 3544. 子树反转和 的 Rust 实现。思路本题是树形 DP 记忆化搜索。核心观察 反转一个节点会影响其整个子树。约束条件要求若两个反转节点存在祖先关系则它们之间的距离边数必须至少为 k。状态定义 dp(u, steps, inverted) 表示- 以节点 u 为根的子树- steps距离最近一个祖先反转节点已经经过了多少条边上限为 k- inverted当前节点是否被反转即当前子树整体是否被乘了 -1转移- 若 steps k当前节点可以再次反转取 max(不反转, 反转)- 若 steps k当前节点不能反转只能继承当前状态- 对于子节点 v- 不反转 u子节点继承 min(steps 1, k)反转状态不变- 反转 u若允许子节点的 steps 重置为 1反转状态翻转初始状态 根节点 0 的 steps k表示根节点可以立即反转。复杂度 O(n · k) 状态数每个状态遍历所有子节点总复杂度 O(n · k)。---rustimpl Solution {pub fn subtree_inversion_sum(edges: VecVeci32, nums: Veci32, k: i32) - i64 {let n edges.len() 1;let k k as usize;// 构建邻接表let mut graph vec![vec![]; n];for edge in edges {let u edge[0] as usize;let v edge[1] as usize;graph[u].push(v);graph[v].push(u);}// memo[u][steps][inverted]None 表示未计算let mut memo vec![vec![vec![None; 2]; k 1]; n];// parent[i] n 表示无父节点根节点let mut parent vec![n; n];fn dfs(u: usize,steps: usize,inverted: usize,graph: VecVecusize,nums: Veci32,k: usize,parent: mut Vecusize,memo: mut VecVecVecOptioni64,) - i64 {if let Some(val) memo[u][steps][inverted] {return val;}let inv inverted 1;// 当前节点在 inherited 状态下的值let num if inv { -(nums[u] as i64) } else { nums[u] as i64 };// 如果当前节点再反转一次符号翻转let mut neg_num -num;let mut sum num;for v in graph[u] {if v parent[u] {continue;}parent[v] u;// 不反转当前节点子节点继承 steps1上限 k反转状态不变sum dfs(v, (steps 1).min(k), inverted, graph, nums, k, parent, memo);// 如果距离足够远steps k可以尝试反转当前节点if steps k {neg_num dfs(v, 1, 1 - inverted, graph, nums, k, parent, memo);}}// 如果当前可以反转取最大值否则只能不反转let res if steps k { sum.max(neg_num) } else { sum };memo[u][steps][inverted] Some(res);res}dfs(0, k, 0, graph, nums, k, mut parent, mut memo)}}---验证- 示例 1edges[[0,1],[0,2],[1,3],[1,4],[2,5],[2,6]], nums[4,-8,-6,3,7,-2,5], k2 → 27 ✓- 示例 2edges[[0,1],[1,2],[2,3],[3,4]], nums[-1,3,-2,4,-5], k2 → 9 ✓- 示例 3edges[[0,1],[0,2]], nums[0,-1,-2], k3 → 3 ✓
终极RPG Maker解密指南:3分钟提取加密游戏资源 【免费下载链接】RPGMakerDecrypter Tool for decrypting and extracting RPG Maker XP, VX and VX Ace encrypted archives and MV and MZ encrypted files. 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMaker…
📅 2026/7/12 0:09:31
SoundSwitch高级配置指南:掌握音频设备切换的5个专业技巧 【免费下载链接】SoundSwitch C# application to switch default playing device. Download: https://soundswitch.aaflalo.me/ 项目地址: https://gitcode.com/gh_mirrors/so/SoundSwitch
SoundSwit…
📅 2026/7/12 0:09:31
双架构演进与NDJSON远程协议——Agent突破本地边界《Claude Code 架构解密》精读笔记 第18篇 第13章
核心洞察:Agent远程化的关键不是"如何传输",而是"状态归谁所有"——这个决定将导出通信架构、安全模型和故障语义的全部设计。导…
📅 2026/7/12 0:09:31
1. 项目概述:当AI学会“挖洞”,我们该如何应对?最近,AI圈和安全圈都被一则消息搅得沸沸扬扬:Anthropic公司对其内部代号为“Claude Mythos”的AI能力进行了严格的公开限制。这并非一次普通的版本迭代或功能调整&#x…
📅 2026/7/12 1:08:49
oeAware-collector社区贡献指南:从入门到精通的开源之路 【免费下载链接】oeAware-collector Provides low-overhead metrics collection capabilities, including microarchitecture, system, and kernel information. 项目地址: https://gitcode.com/openeuler/…
📅 2026/7/12 1:08:49
Vue 3 Leaflet 1.9 企业级离线地图解决方案:IIS 部署与交互功能实战在企业级应用开发中,离线地图的需求日益增长,特别是在政务、军工、勘探等对数据安全性和网络稳定性要求极高的领域。本文将深入探讨如何基于Vue 3和Leaflet 1.9构建一套完整…
📅 2026/7/12 1:08:49
1. 项目概述:人形机器人不是科幻片里的道具,而是正在车间里拧螺丝、在仓库里搬箱子、在实验室里调参数的“新同事”“人形机器人”这四个字最近频繁出现在科技媒体头条、产业峰会主论坛、甚至地方政府专项扶持政策文件里。但如果你真去工厂产线、物流分拣…
📅 2026/7/12 1:08:49
腾讯文档双核引擎2024:OOXML统一存储如何突破万级标签兼容的技术深水区当你在凌晨三点用手机修改完一份公司年度预算表,第二天早上同事在电脑端打开时发现所有公式和格式分毫不差——这种看似简单的跨端协作体验,背后是腾讯文档双核引擎与OOX…
📅 2026/7/12 1:08:49
很多新手刚接触openclaw技能时,最容易犯的错误就是贪多求全。你以为背下所有连招就能无敌,结果实战里手忙脚乱,连基础普攻都接不上。这篇内容不整虚的,直接告诉你怎么把openclaw技能练到肌肉记忆,让你在下一次对线或团战中不再当提款机。我见过太多人把时间浪费在无效练习…
📅 2026/7/12 1:07:05
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/12 0:15:59
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54