Kimi    LeetCode 3939. 统计有根树中不相邻子集的数目 TypeScript实现
这是 LeetCode 3939 统计有根树中不相邻子集的数目 的 TypeScript 实现。解题思路这是一道树形 DP 问题。对于每个节点我们需要维护两种状态和对 k 取模- dp0[mod]当前节点不选子树中已选节点和模 k 为 mod 的方案数- dp1[mod]当前节点选子树中已选节点和模 k 为 mod 的方案数状态转移- 当前节点不选子节点可选可不选dp0 与 (cdp0 cdp1) 做背包合并- 当前节点选子节点必须不选dp1 只与 cdp0 做背包合并初始状态- dp0[0] 1不选当前节点空集- dp1[nums[u] % k] 1只选当前节点答案 dp0[0] dp1[0] - 1减去全局空集时间复杂度 O(n \cdot k^2)空间复杂度 O(n \cdot k)。typescriptfunction countValidSubsets(parent: number[], nums: number[], k: number): number {const MOD 1_000_000_007;const n parent.length;// 建树const children: number[][] Array.from({ length: n }, () []);for (let i 1; i n; i) {children[parent[i]].push(i);}// 预先对节点值取模const vals nums.map(x ((x % k) k) % k);// 安全乘法取模避免 JS Number 精度溢出const mul (a: number, b: number): number {return Number((BigInt(a) * BigInt(b)) % BigInt(MOD));};// DFS 返回 [dp0, dp1]function dfs(u: number): [number[], number[]] {const dp0: number[] new Array(k).fill(0); // u 不选const dp1: number[] new Array(k).fill(0); // u 选dp0[0] 1;dp1[vals[u]] 1;for (const v of children[u]) {const [cdp0, cdp1] dfs(v);const ndp0: number[] new Array(k).fill(0);const ndp1: number[] new Array(k).fill(0);// u 不选v 可选可不选for (let i 0; i k; i) {if (dp0[i] 0) continue;for (let j 0; j k; j) {if (cdp0[j]) {const idx (i j) % k;ndp0[idx] (ndp0[idx] mul(dp0[i], cdp0[j])) % MOD;}if (cdp1[j]) {const idx (i j) % k;ndp0[idx] (ndp0[idx] mul(dp0[i], cdp1[j])) % MOD;}}}// u 选v 必须不选for (let i 0; i k; i) {if (dp1[i] 0) continue;for (let j 0; j k; j) {if (cdp0[j]) {const idx (i j) % k;ndp1[idx] (ndp1[idx] mul(dp1[i], cdp0[j])) % MOD;}}}for (let i 0; i k; i) {dp0[i] ndp0[i];dp1[i] ndp1[i];}}return [dp0, dp1];}const [dp0, dp1] dfs(0);let ans dp0[0] dp1[0] - 1; // 减去空集ans % MOD;if (ans 0) ans MOD;return ans;}说明- 使用 BigInt 进行中间乘法运算避免 JavaScript Number 类型在 10^{18} 级别乘积时的精度丢失问题。- 由于 parent[i] i也可以按逆序迭代实现非递归版本避免栈深度问题n \le 1000 递归通常安全。

相关新闻

Kimi    LeetCode 3943. 递增后的数对数量 Python3实现

Kimi LeetCode 3943. 递增后的数对数量 Python3实现

这是 LeetCode 3943 递增后的数对数量 的 Python3 实现。 解题思路 核心观察&#xff1a;nums1.length < 5&#xff08;极短&#xff09;&#xff0c;而 nums2 很长&#xff08;5 \times 10^4&#xff09;且需要支持区间加和单值频次查询。 对于类型 2 查询 [2, tot]&…

2026/8/18 20:16:57 阅读更多 →
免费开源 DDrawCompat 兼容性修复实测:一个 dll 让《星际争霸》在 Win11 满血复活

免费开源 DDrawCompat 兼容性修复实测:一个 dll 让《星际争霸》在 Win11 满血复活

免费开源 DDrawCompat 兼容性修复实测&#xff1a;一个 dll 让《星际争霸》在 Win11 满血复活 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcod…

2026/8/18 20:16:57 阅读更多 →
漏洞验证实验如何控制边界与风险

漏洞验证实验如何控制边界与风险

漏洞验证实验如何控制边界与风险 讨论最小可运行架构与组件职责拆分&#xff0c;关键不是罗列工具&#xff0c;而是回答一个更实际的问题&#xff1a;在 AI 增强型 漏洞利用与缓解绕过&#xff1a;栈/堆溢出、ASLR/DEP 绕过技术剖析&#xff1a;预测建模、异常识别与决策辅助 的…

2026/8/18 20:15:57 阅读更多 →

最新新闻

HarmonyOS 7.0 / API 26 悬浮页签状态保护:列表滚动、筛选切换和返回时如何不乱跳

HarmonyOS 7.0 / API 26 悬浮页签状态保护:列表滚动、筛选切换和返回时如何不乱跳

先看问题为什么会发生 这篇只抓一个点&#xff1a;悬浮页签状态保护。我不按概念顺序铺开&#xff0c;而是按项目里最容易出问题的路径来拆&#xff1a;先复现坏写法&#xff0c;再补上边界判断&#xff0c;最后用日志和状态验证结果。 悬浮页签看起来只是导航控件&#xff0c;…

2026/8/18 21:00:34 阅读更多 →
基于向量嵌入的博客标签生成:从语义理解到工程实践

基于向量嵌入的博客标签生成:从语义理解到工程实践

在博客内容管理、搜索和推荐系统中&#xff0c;为文章自动打上准确的标签一直是个难题。传统基于规则或简单关键词匹配的方法&#xff0c;要么依赖人工预设的分类体系&#xff0c;容易产生“分类幻觉”——将文章强行塞入不合适的类别&#xff1b;要么因为语义理解的缺失&#…

2026/8/18 21:00:34 阅读更多 →
基于多智能体架构的临床决策支持系统设计与医疗AI应用实践

基于多智能体架构的临床决策支持系统设计与医疗AI应用实践

1. 项目缘起&#xff1a;一个临床决策支持系统的诞生 在肿瘤诊疗领域&#xff0c;尤其是胸部肿瘤&#xff0c;多学科诊疗&#xff08;MDT&#xff09;模式&#xff0c;也就是我们常说的“肿瘤委员会”&#xff0c;已经成为提升患者生存率和生活质量的金标准。一个典型的胸部肿瘤…

2026/8/18 21:00:34 阅读更多 →
多智能体系统如何防范LLM幻觉传播与错误放大

多智能体系统如何防范LLM幻觉传播与错误放大

1. 从“幻觉”到“雪崩”&#xff1a;多智能体系统中的错误传播现象 最近在折腾几个大语言模型&#xff08;LLM&#xff09;协同工作的项目时&#xff0c;我遇到了一个比单个模型“胡说八道”更棘手的问题&#xff1a;错误传播。简单来说&#xff0c;就是一个智能体&#xff08…

2026/8/18 21:00:34 阅读更多 →
6G原生推理智能体通信:从信念交换到分布式协同的未来网络范式

6G原生推理智能体通信:从信念交换到分布式协同的未来网络范式

1. 从“连接”到“认知”&#xff1a;为什么6G需要“原生推理”的智能体通信&#xff1f;如果你和我一样&#xff0c;在通信网络领域摸爬滚打了十几年&#xff0c;从3G的“能上网”到4G的“快上网”&#xff0c;再到5G的“万物互联”&#xff0c;我们似乎一直在沿着一条清晰的路…

2026/8/18 20:59:34 阅读更多 →
GLM-5.3本地部署与编程能力实战测试指南

GLM-5.3本地部署与编程能力实战测试指南

智谱AI最近发布了GLM-5.3&#xff0c;一个定位为“最强开源编程模型”的新版本。根据官方信息&#xff0c;它在编程相关的任务上&#xff0c;相比前代GLM-5.2有高达50%的性能提升。对于开发者、技术团队和任何需要将AI编程能力集成到本地环境或私有化部署的人来说&#xff0c;这…

2026/8/18 20:59:34 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图&#xff1a;用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手&#xff1a;7个字重免费商用&#xff0c;从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻&#xff1a;设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南&#xff1a;GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者&#xff0c;最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent&#xff0c;从本地部署到云端API&#xff0c;我们正处在一个技术栈快速重构的节点。然而&#xff0c;面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →