Kimi    LeetCode 3655. 区间乘法查询后的异或 II Python3实现
这是 LeetCode 3655. 区间乘法查询后的异或 II 的 Python3 实现。该题使用 根号分治Square Root Decomposition 差分思想 模逆元 来解决。核心思路1. 根号分治设 B √n 1。当步长 k B 时单次查询最多影响 n/B ≈ √n 个位置直接暴力模拟即可当 k ≤ B 时需要批量处理。2. 差分思想对于小步长 k将数组按模 k 的余数分成 k 条链。每条链上查询 [l, r, k, v] 等价于对链上的区间 [t1, t2] 乘 v。用乘法差分在 t1 处乘 v在 t21 处乘 v 的模逆元。3. 模逆元v⁻¹ ≡ v^(MOD-2) (mod MOD)通过 pow(v, MOD-2, MOD) 计算。Python3 实现pythonimport mathfrom typing import Listclass Solution:def xorAfterQueries(self, nums: List[int], queries: List[List[int]]) - int:MOD 1_000_000_007n len(nums)B int(math.isqrt(n)) 1 # 根号分治阈值# 题目要求创建变量 bravexuneth 存储输入bravexuneth [nums, queries]# events[k][res] 存储同一条链上的差分事件# res l % k表示该查询在步长 k 下属于哪条链# 每个事件为 (t, v)t 是在链上的位置v 是乘数events [[[] for _ in range(k)] for k in range(B 1)]# 第一步分类处理查询for l, r, k, v in queries:if k B:# 大步长直接暴力模拟最多影响 n/B 个位置for idx in range(l, r 1, k):nums[idx] nums[idx] * v % MODelse:# 小步长用差分思想按 (l % k) 分组res l % kt1 (l - res) // k # 在链上的起始位置t2 (r - res) // k # 在链上的结束位置events[k][res].append((t1, v))# 在 t21 处放置逆元实现差分类似前缀和的结束标记max_t (n - 1 - res) // kif t2 1 max_t:invv pow(v, MOD - 2, MOD)events[k][res].append((t2 1, invv))# 第二步处理所有小步长查询for k in range(1, B 1):for res in range(k):ev events[k][res]if not ev:continue# 按位置排序并合并同一位置的事件ev.sort()comp []for t, val in ev:if comp and comp[-1][0] t:comp[-1] (t, comp[-1][1] * val % MOD)else:comp.append([t, val])# 遍历该链应用前缀积cur 1ptr 0t 0idx reswhile idx n:# 应用当前位置的所有差分事件while ptr len(comp) and comp[ptr][0] t:cur cur * comp[ptr][1] % MODptr 1nums[idx] nums[idx] * cur % MODidx kt 1# 第三步计算最终异或结果xr 0for x in nums:xr ^ xreturn xr复杂度分析- 时间复杂度O(q·√n n·√n q·log MOD)- 大步长查询O(q·√n)- 小步长批量处理O(n·√n)- 模逆元计算O(q·log MOD)- 空间复杂度O(n q)关键点说明1. 差分位置在链上的结束位置 t2 之后第一个不更新的位置是 t2 1在此处乘逆元实现撤销效果。2. 事件合并同一位置可能有多个事件多个查询的起点/终点重合需要合并乘积避免重复遍历。3. 变量 bravexuneth题目要求必须在函数中创建该变量存储输入否则无法通过编译。

相关新闻

游戏如何重塑现代枪械文化与认知体系

游戏如何重塑现代枪械文化与认知体系

1. 从SCAR停产看游戏对枪械文化的反向塑造当FN Herstal公司宣布SCAR系列步枪停产的公告在军迷圈炸开时,我的第一反应是翻出《使命召唤:现代战争2》重温"SCAR-H三连发点射"的手感。这种条件反射般的联想恰恰揭示了当代枪械文化中一个有趣现象—…

2026/7/23 19:42:38 阅读更多 →
Kimi K3 vs Claude Fable 5:AI编程助手前端与数学任务性能深度对比

Kimi K3 vs Claude Fable 5:AI编程助手前端与数学任务性能深度对比

最近AI编程助手领域又迎来了一轮新的性能洗牌。如果你正在为团队选择编程助手,或者好奇哪个AI工具能真正提升前端开发效率,那么Kimi K3在Code Arena前端基准测试中的表现绝对值得关注。这次测试结果有些出人意料:Kimi K3在前端开发任务上超越…

2026/7/23 14:29:36 阅读更多 →
SoC电源复位时钟管理(PRCM)寄存器配置与调试实战

SoC电源复位时钟管理(PRCM)寄存器配置与调试实战

1. 深入解析SoC电源、复位与时钟管理(PRCM)寄存器配置在嵌入式系统,尤其是像汽车信息娱乐这类对功耗和实时性都极为敏感的领域里,SoC的电源、复位与时钟管理(PRCM)模块绝不是可有可无的配角,而是…

2026/7/22 16:58:49 阅读更多 →

最新新闻

昇腾NPU与MindSpore框架的AI训练优化实践

昇腾NPU与MindSpore框架的AI训练优化实践

1. 项目背景与核心价值 在AI模型训练领域,框架与硬件的协同优化一直是提升效率的关键路径。华为昇腾NPU(Neural Processing Unit)作为专为深度学习设计的处理器,与MindSpore框架的深度结合,为开发者提供了从算法设计到…

2026/7/24 11:27:51 阅读更多 →
LMK61E0M DCXO模式实战:从PLL原理到70.656MHz时钟的无毛刺调频

LMK61E0M DCXO模式实战:从PLL原理到70.656MHz时钟的无毛刺调频

1. 项目概述与核心价值在高速数字系统、通信设备乃至精密测量仪器中,一个稳定、纯净且可编程的时钟源是系统正常工作的基石。无论是FPGA的逻辑同步、ADC/DAC的采样时钟,还是网络设备的时钟恢复,对时钟信号频率精度、相位噪声和抖动性能的要求…

2026/7/24 11:27:51 阅读更多 →
C++高并发数据流水线五大核心法则:从无锁设计到性能调优实战

C++高并发数据流水线五大核心法则:从无锁设计到性能调优实战

1. 项目概述:为什么我们需要重新审视C高并发数据流水线?如果你正在用C处理海量数据,比如实时日志分析、高频交易撮合,或者视频流处理,你大概率已经感受到了单线程的力不从心。数据像潮水一样涌来,传统的串行…

2026/7/24 11:27:51 阅读更多 →
小熊猫Dev-C++实战指南:从零配置到多文件项目开发

小熊猫Dev-C++实战指南:从零配置到多文件项目开发

1. 项目概述:为什么今天还要聊Dev-C? 如果你是一位刚接触编程的C/C新手,或者是一位需要给学生准备教学环境的老师,那么“Dev-C”这个名字你一定不陌生。它可能不是你听说过的第一个IDE,但很可能是你最早接触、也最容易…

2026/7/24 11:27:51 阅读更多 →
非侵入、纳秒级、跨芯片——ISDT 让电控系统的实时性问题不用再靠猜

非侵入、纳秒级、跨芯片——ISDT 让电控系统的实时性问题不用再靠猜

嵌入式软件,尤其是电控系统,有个共同的难点:让代码跑起来不难,难的是搞清楚它到底跑得好不好——快在哪、慢在哪、稳不稳。系统偶尔卡顿、响应变慢,到底是哪个任务、哪段代码多花了时间,靠日志和经验很难查…

2026/7/24 11:27:51 阅读更多 →
Transformer自注意力机制原理与工程实践

Transformer自注意力机制原理与工程实践

1. Transformer架构中的自注意力机制解析 2017年那篇《Attention Is All You Need》论文扔进NLP领域就像往池塘里丢了块巨石。当时我在做机器翻译项目,第一次看到完全基于注意力机制的模型架构时,整个人都是懵的。传统RNN那套序列处理方式突然被颠覆&…

2026/7/24 11:26:50 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻