一维差分例题 二维差分 二维差分习题 声明 前缀和 与 差分可以理解为互逆的, 求前缀和 跟 差分通常设数组首项下标为1,方便思考的计算。 一维前缀和介绍 对于一维数组 a[n] , 存在数组 sum[n],使得 sum[i] = a[1] + a[2] + ... + a[i] 前缀和优势 以O(1)的时间复杂度得到某块区间的总和 举...
第二章 前缀和、差分与离散化 例题 *T1 P1719 最大加权矩形 题目描述: 给定一个n*n的矩阵,求出其中元素和最大的一块子矩阵的元素和。 \(n\le120\) 思路1: 矩阵前缀和 \(O(n^4)\) 先执行一次矩阵前缀和。 然后依次枚举每对点,$O(1)*n^4$遍历每一个子矩阵。 *
#include<iostream>#include<algorithm>using namespace std;constintN=1e7+10;int a[N];intmain(){int n,m;cin>>n>>m;int l,r;for(int i=0;i<m;i++){cin>>l>>r;a[l]--,a[r+1]++;//前缀和,l-r标记为-1,r + 1又标记为1}for(int i=1;i<=n;i++){a[i]+=a[i-1];}int...
二维差分二维差分一维多一个维度,会出现重叠的问题。 普通算法需要O(n2)的时间复杂度而使用差分与二维前缀和相结合只需O (1)的 时间复杂度根据前缀和的特性,在(x1,y1)-(x2,y2)区域内,差分影响的是整个黄色区域,多影响两个蓝色部分。绿色区域是两个蓝色区域重叠的部分,所以要加上与一块蓝色区域操作的反操作...