news 2026/6/15 7:41:42

前缀和+差分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前缀和+差分

前提提要:这两种算法都不用背,重点是理解,等题目需要时,自己画图解决!

注意不管是前缀和还是差分 我们一定要数组下标从1开始!

前缀和(分成一维和二维)

作用:求一段序列的和

一维前缀和:

题目原先数组a[N];

创建一个数组发前缀和数组f[N],利用for循环+递归 f[i]=f[i-1]+a[i];

假如题目要我们求[L,R]之间的和,我们可以用 sum=f[R]-f[L-1];

二位前缀和:

题目原先数组a[N][N];

第一步预处理:f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i-1][j-1];

第二步求[x1,y1]到[x2,y2]之间的前缀和,即sum=f[x2][y2]-f[x2][y1-1]-f[x1-1][y2]+f[x1-1][y1-1];

差分(分一维和二维)

作用:对一段序列进行加x

一维差分:

有两种常用表达形式:

第一种:题目原先数组a[N],创建差分数组f[N],我们可以for循环 f[i]=a[i]-a[i-1];

对于题目要求改变的序列[L,R],我们f[L]+=x,f[R-1]-=x;

然后还原原先序列 for循环 a[i]=a[i-1]+f[i] 输出即可得到新序列

第二种:根据性质来创建差分序列

for循环 我们直接输入一个t 再加上这两个表达式 f[i]+=t,f[i+1]-=t;

对于题目要求改变的序列[L,R],我们f[L]+=x,f[R-1]-=x;

然后还原原先序列 for循环+前缀和还原 f[i]+=f[i-1];

一边常用第二种 因为可以少创建一个数组

二维差分:

我们对于[x1,y1]到[x2,y2]这个区间同时加x;

说明insert函数:f[x1][y1]+=x,f[x1][y2+1]-=x,f[x2+1][y1]-=x,f[x2+1][y2+1]+=x;

第一步:预处理 依次对二维数组cin>>t 我们就可以两个for循环 insert(i,j,i,j,t)

第二步:改变 insert(x1,y1,x2,y2,x);

第三步还原:用前缀和 sum=f[x2][y2]-f[x2][y1-1]-f[x1-1][y2]+f[x1-1][y1-1];

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 18:49:04

错过再等十年:IPCC级气候归因模型R实现全过程首次公开

第一章:极端事件归因的科学背景与R语言优势极端气候事件如热浪、暴雨和干旱的频率与强度在全球变暖背景下显著上升,推动了极端事件归因(Extreme Event Attribution, EEA)这一新兴气候科学领域的发展。该领域旨在量化人类活动对特定…

作者头像 李华
网站建设 2026/6/13 21:07:11

CPU资源争抢严重?揭秘智能Agent容器QoS分级背后的资源限制逻辑

第一章:CPU资源争抢严重?揭秘智能Agent容器QoS分级背后的资源限制逻辑在高密度容器化部署场景中,多个智能Agent可能共享同一宿主机的CPU资源,导致关键服务因资源争抢而性能下降。Kubernetes通过QoS(服务质量&#xff0…

作者头像 李华
网站建设 2026/6/13 14:49:31

Dify权限系统全剖析:4步构建安全可控的Agent工具访问体系

第一章:Dify权限系统全剖析:4步构建安全可控的Agent工具访问体系理解Dify权限模型的核心设计 Dify采用基于角色的访问控制(RBAC)模型,将用户、角色与资源权限解耦,实现细粒度的权限管理。每个Agent被视为独…

作者头像 李华
网站建设 2026/6/14 16:09:55

别错过!这几款精选的开源宝藏项目!

VannaVanna是一个由AI驱动的SQL生成框架,能够将自然语言问题转换为准确的SQL查询。支持跟SQL数据库进行聊天,通过使用代理检索,利用LLMs生成准确的文本到SQL转换,为开发者和数据分析师提供了智能数据库查询能力。在Github上斩获21…

作者头像 李华
网站建设 2026/6/14 23:27:14

别再被网络问题拖累!云原生Agent Docker配置的7个关键步骤

第一章:云原生Agent与Docker网络配置概述 在现代云原生架构中,Agent 通常指部署在节点上的轻量级服务进程,用于采集监控数据、执行调度指令或实现服务网格通信。这些 Agent 往往以容器化方式运行,依赖 Docker 等容器引擎提供的隔离…

作者头像 李华
网站建设 2026/6/14 22:28:56

3步构建因果模型:R语言在真实世界临床研究中的高效实践

第一章:因果推断在真实世界临床研究中的意义在现代医学研究中,随机对照试验(RCT)长期被视为评估治疗效果的金标准。然而,RCT往往受限于严格的纳入标准、高昂的成本和伦理约束,难以全面反映真实世界中的患者…

作者头像 李华