Kimi LeetCode 3715. 完全平方数的祖先个数总和 Python3实现
📅 2026/7/27 6:19:03
👁️ 次浏览
以下是 LeetCode 3715. 完全平方数的祖先个数总和 的 Python3 实现基于 DFS 哈希表 无平方因子核预处理的思路。---核心思路关键数学性质两个数 a × b 是完全平方数当且仅当它们去掉所有平方因子后的剩余部分无平方因子核相等。例如- 8 2³去掉 2²偶数指数剩余 2¹ → core[8] 2- 2 2¹ → core[2] 2- 16 2⁴ → 所有指数都是偶数 → core[16] 1所以 nums[i] × nums[ancestor] 为完全平方数 ⇔ core[nums[i]] core[nums[ancestor]]算法1. 预处理所有数的无平方因子核 core[x]2. DFS 遍历树用哈希表 cnt 记录当前路径上各 core 值的出现次数3. 对每个非根节点查询 cnt[core[nums[i]]] 即为符合条件的祖先个数4. 回溯时恢复现场---Python3 代码pythonfrom typing import Listfrom collections import defaultdictclass Solution:# 预处理计算每个数的无平方因子核square-free core# core[x] 去掉 x 中所有平方因子后剩余的部分MX 100001core [0] * MXclassmethoddef _init_core(cls):类方法只需执行一次预处理if cls.core[1] ! 0:return # 已经初始化过for i in range(1, cls.MX):if cls.core[i] 0: # i 本身是无平方因子数j 1while i * j * j cls.MX:cls.core[i * j * j] ij 1def sumOfAncestors(self, n: int, edges: List[List[int]], nums: List[int]) - int:self._init_core()# 建图无向树g [[] for _ in range(n)]for u, v in edges:g[u].append(v)g[v].append(u)ans 0# cnt[c] 当前DFS路径上 core 值为 c 的节点个数cnt defaultdict(int)def dfs(x: int, fa: int):nonlocal ansc self.core[nums[x]]# 当前节点的祖先中core 值相同的个数ans cnt[c]cnt[c] 1for y in g[x]:if y ! fa:dfs(y, x)# 回溯恢复现场cnt[c] - 1dfs(0, -1)return ans---复杂度分析项目 复杂度预处理 core O(MX \cdot \sqrt{MX})实际约 10^5 \times 10建图 O(n)DFS 遍历 O(n)总时间 O(n MX \cdot \sqrt{MX})空间 O(n MX)---示例验证示例 1n3, edges[[0,1],[1,2]], nums[2,8,2]节点 nums core 祖先core计数 贡献0 2 2 {} 01 8 2 {2:1} 12 2 2 {2:2} 2总和 0 1 2 3 ✓示例 2n3, edges[[0,1],[0,2]], nums[1,2,4]节点 nums core 祖先core计数 贡献0 1 1 {} 01 2 2 {1:1} 02 4 1 {1:1} 1总和 0 0 1 1 ✓---另一种写法更简洁直接修改 nums如果不想用类变量预处理也可以直接对每个 nums[i] 做质因数分解去掉所有平方因子pythonfrom typing import Listfrom collections import defaultdictclass Solution:def sumOfAncestors(self, n: int, edges: List[List[int]], nums: List[int]) - int:# 预处理去掉每个 nums[i] 中的所有平方因子for i in range(n):x nums[i]d 2while d * d x:while x % (d * d) 0:x // d * dd 1nums[i] xg [[] for _ in range(n)]for u, v in edges:g[u].append(v)g[v].append(u)ans 0cnt defaultdict(int)def dfs(x: int, fa: int):nonlocal ansc nums[x]ans cnt[c]cnt[c] 1for y in g[x]:if y ! fa:dfs(y, x)cnt[c] - 1dfs(0, -1)return ans两种方法本质相同第二种更简洁但第一种预处理 core 数组在多次调用时效率更高。两种方法都能通过 n \le 10^5 的数据范围。
1、脚本/可执行类
.sh Bash/Shell 脚本
.bash bash专用脚本,和.sh几乎通用
.zsh zsh解释器脚本
.py Python脚本
.pl Perl脚本
.js NodeJS脚本
.go Go源码
.c/.cpp/.h C/C源码
.jar Java打包程序
.elf Linux原生可执行二进制…
📅 2026/7/27 6:19:03
别在那儿对着手机屏幕发愁了,这篇就是来给你吃定心丸的。不管你是想搞钱还是想脱单,2018下半年的星象其实挺照顾咱们的。看完这篇,你心里大概就有底了,不用再去那些乱七八糟的论坛里翻那些模棱两可的废话。说实话,刚过完2018上半年,很多人心里都挺没底的。上半年那会儿,…
📅 2026/7/27 6:17:32
1. 高光谱图像复原的挑战与机遇高光谱成像技术近年来在遥感监测、精准农业、环境评估等领域展现出巨大潜力。与普通RGB图像相比,高光谱图像(HSI)能够捕获数百个连续光谱波段的信息,形成独特的光谱"指纹"。这种特性使得H…
📅 2026/7/27 6:18:03
1. 项目概述:从零构建一个C超市仓库管理系统最近在整理硬盘,翻出来一个十多年前写的C超市仓库管理系统源码。当时是为了帮一个开小超市的朋友解决库存混乱的问题,从需求分析到最终交付,前后折腾了小一个月。现在看来,代…
📅 2026/7/27 7:36:22
“不擅长聊天”很多时候不是能力缺陷,而是把聊天误解成了“我要持续输出有趣内容”。很多人进入聊天时,脑中有一个隐藏任务:“我要表现得有趣、聪明、有魅力。”于是聊天变成了考试。
一考试:
压力就出现。第一层:什么…
📅 2026/7/27 7:36:22
1. 为什么2026年Java面试依然值得关注?作为一门诞生近30年的编程语言,Java在2026年依然保持着惊人的生命力。根据最新的开发者生态报告显示,Java在全球企业级应用开发中的占比仍高达45%,特别是在金融、电信、政务等关键领域&#…
📅 2026/7/27 7:36:22
前言
📌博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码&am…
📅 2026/7/27 7:36:22
1. Python循环结构:从零基础到实战进阶 刚接触Python时,循环结构往往是第一个让人既兴奋又困惑的概念。记得我最初写while循环时,因为漏了终止条件导致程序无限运行,只能强行关闭终端。这种"血的教训"恰恰说明了理解循环…
📅 2026/7/27 7:36:22
昨天半夜两点,我盯着屏幕发呆。手里那台刚拆封的机器,指示灯闪得人心慌。朋友圈里全是晒单的,清一色的好评。但我心里总犯嘀咕,这玩意儿真有那么神?说实话,一开始我也是冲着热度去的。毕竟现在这行情,谁不想捡个漏?同事老张上次吹得天花乱坠,说用了之后效率翻倍。我半…
📅 2026/7/27 7:35:36
现象在 WezTerm 终端中,包含中文路径的文本(如标签页标题、Shell 提示符、路径补全)中,某些汉字时而渲染为日文字形,时而显示为简体中文(中国大陆)字形。以「径」字为例,日文写法右侧…
📅 2026/7/27 0:00:07
这个问题看似在寻找一个答案,实际上是在寻找一种“值得继续投入的方向感”。很多人在问:
“人生有什么意义?”
深层可能是在问:
我现在做的事情值得吗?我的努力有没有价值?我的存在是不是重要?未…
📅 2026/7/27 0:00:07
1. 为什么MoE架构让大模型参数量翻倍却不增加推理成本?去年我在部署一个千亿参数大语言模型时,首次接触到混合专家模型(Mixture of Experts,简称MoE)架构。当时最让我震惊的是,这种架构的模型参数量可以达到…
📅 2026/7/27 0:00:07
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/27 1:11:21
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/27 1:11:21
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/27 1:11:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/27 7:11:38
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/26 17:10:53
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/27 5:11:32