![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
差分与前缀和
文章平均质量分 72
差分与前缀和
hnjzsyjyj
这个作者很懒,什么都没留下…
展开
-
AcWing 798:差分矩阵 ← 二维差分模板题
● 构建差分数组:d[i][j]=a[i][j]-a[i-1][j]-a[i][j-1]+a[i-1][j-1];● 区间操作转端点操作:d[x1][y1]+=c;d[x1][y2+1]-=c;d[x2+1][y1]-=c;d[x2+1][y2+1]+=c;原创 2024-06-25 23:17:57 · 371 阅读 · 0 评论 -
AcWing 797:差分 ← 一维差分模板题
● 利用差分处理此类“多次对区间进行加减操作”的问题,可以大大降低算法的时间复杂度。这是因为,构造差分数组后,对原数组区间 [le, ri] 的加减操作就转化为对差分数组的区间端点的操作:d[le]+=x,d[ri+1]-=x。这明显大大降低了计算量,所以算法效率会很高。注意:此处的原数组及差分数组的下标都从1开始。原创 2024-06-25 17:28:06 · 421 阅读 · 0 评论 -
AcWing 2041. 干草堆 ← 差分+桶排序
在代码层面上实践差分算法时,有一个很实用的技巧:若已知差分数组d[i],则语句 d[i]+=d[i-1] 得到原始数组。原创 2024-06-21 16:45:54 · 737 阅读 · 0 评论 -
在连续区间上应用差分算法的常见步骤:差分数组 → 原数组 → 前缀和
差分与前缀和是一对互逆的操作,常用于求解区间问题。1.差分主要用于多次对区间进行加减操作的问题2.前缀和主要用于多次对区间进行求和的问题3.在连续区间上应用差分算法的常见步骤:差分数组 → 原数组 → 前缀和原创 2023-08-12 12:37:48 · 188 阅读 · 0 评论 -
罗勇军 → 《算法竞赛·快冲300题》每日一题:“推箱子” ← 差分及前缀和
本题箱子高度为H,障碍物的尺寸为N*N,若用 a[i] 表示障碍物第 i 行的空白数量,则问题就抽象为“从 a[] 中找出连续的 H个 整数,要求它们的和最大”,也即要清理的障碍物面积最小。很显然,此时问题就转化成一个典型的区间求和问题。而区间求和问题,自然而然就要考虑选择差分和前缀和进行优化,避免时间复杂度过大而超时。1.差分主要用于多次对区间进行加减操作的问题。2.前缀和主要用于多次对区间进行求和的问题。3.在连续区间上应用差分算法的常见步骤:差分数组 → 原数组 → 前缀和原创 2023-08-12 12:17:43 · 648 阅读 · 3 评论 -
二维前缀和:轰炸区最优选取
【算法分析】前缀和并不难理解。前缀和有一维和二维之分。面对许多高维问题,前缀和往往是大家最先想到的降维方法。由于降维,前缀和能够优化问题的时间复杂度。什么是前缀和?设b[]为前缀和数组,a[]为原数组,则前缀和的定义式及递推式如下图所示:由上图可知,一维前缀和及二维前缀和的定义如下。一维前缀和:一个一维数组的某项下标之前(包括此项元素)的所有数组元素的和。二维前缀和:一个二...原创 2019-09-03 22:43:29 · 382 阅读 · 0 评论 -
二维前缀和示意图
灵活运用二维前缀和,能够大大降低算法的时间复杂度。二维前缀和的计算公式为:S(x2,y2)+S(x1-1,y1-1)-S(x2,y1-1)-S(x1-1,y2)原创 2021-09-13 13:37:44 · 410 阅读 · 0 评论 -
查询矩阵某个区域内所有数的和 ← 二维前缀和
【问题描述】查询矩阵某个区域内所有数的和。【算法代码】#include <bits/stdc++.h>using namespace std;const int maxn=1010;int a[maxn][maxn];int sum[maxn][maxn];int main() { int n,m; cin>>n>>m; //输入矩阵行数及列数 for(int i=1; i<=n; i++) { //二维前缀和预处理阶段 for(i原创 2021-10-05 20:45:39 · 236 阅读 · 0 评论 -
AcWing 795:一维前缀和
【题目来源】https://www.acwing.com/problem/content/797/【问题描述】输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。【输入格式】第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。【输出格式】共m行,每行输出一个询问的结果。【数据范围】1 ≤ l ≤ r ≤ n,1原创 2021-10-07 06:40:15 · 206 阅读 · 0 评论 -
TZOJ 4475:The Coolest Sub-matrix ← 对角线前缀和
【问题描述】Given an N*N matrix, find the coolest square sub-matrix.We define the cool value of the square matrix as X-Y where X indicating the sum of all integers of the main diagonal and Y indicating the sum of the other diagonal.【输入格式】The first line has a原创 2021-10-08 22:20:59 · 164 阅读 · 0 评论