当前位置: 首页 > news >正文

前缀和+差分

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

注意不管是前缀和还是差分 我们一定要数组下标从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];

http://www.zskr.cn/news/111351.html

相关文章:

  • 【环境监测数据同化实战指南】:掌握R语言高效融合多源观测数据的核心技术
  • 为什么你的临床模型总出错?可能是R语言缺失值处理没做好(附诊断清单)
  • 9 个专科生答辩PPT模板,AI工具推荐降重查重率
  • Dify Tesseract 更新为何如此高效?解密其背后鲜为人知的差分同步算法
  • 【稀缺资源】临床数据亚组分析核心算法(R代码+案例数据免费送)
  • 数据库服务器挂载新硬盘全流程端到端运营,实操指引
  • 【Dify缓存机制深度解析】:视频字幕检索性能提升的5大关键周期配置
  • 10 个降AI率工具,研究生高效避坑指南
  • 【Dify与Spring AI兼容性深度解析】:掌握版本匹配的5大核心原则
  • 揭秘Dify Agent元数据定义:3步完成工具注册的标准化配置
  • Dify Tesseract识别性能拉满指南,99%的人都忽略的2个底层机制
  • Dify重排序参数调优全解析,掌握这7个关键参数让你的检索效率翻倍
  • 人呼吸道合胞病毒(hRSV)重组蛋白技术详解:F- G 蛋白结构与试剂级表征指南
  • 面试数据库八股文五问五答第四期
  • 探索含DG的33节点配电网谐波潮流计算
  • Qwen3-8B实战测评:小模型为何超越大模型
  • Dify与Spring AI性能对比(从吞吐量到内存占用的全面剖析)
  • 【Agent工具注册元数据全解析】:Dify平台高效集成的5大核心要素
  • 深入解析:SQL Server 大数据量分表
  • 【Dify 权限架构升级必读】:基于混合检索的3层权限模型设计与落地
  • Dify 1.7.0降噪效果为何碾压前代?:基于频谱掩码技术的深度剖析
  • 如何用Docker Buildx在10分钟内完成ARM64和AMD64双架构镜像构建?真相令人震惊
  • 企业级权限管控难题,Dify如何实现Agent工具的细粒度分级?
  • ffmpeg 下载地址
  • java使用Redison自旋锁和mysql生成唯一编号
  • Dify AI 结合ZeroNews 实现公网快速访问
  • 10 个专科生论文写作工具,AI降重查重率推荐
  • Trae 和 cursor使用
  • 详细介绍:基于YOLOv5-AUX的棕熊目标检测与识别系统实现
  • 【金融风险分析必备技能】:掌握R语言相关性矩阵的5大核心应用