![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前缀和与差分数组
前缀和与差分数组
Dream-chasing ant
鄙人水平不高,建立博客初心只是想留一份回忆给自己。
展开
-
Constant Palindrome Sum CodeForces - 1343D
传送门题意:对于数列,使a[i]+a[n-i+1]=x,用[1,k]之间任意一个数替换a[i]或者是a[n-i+1],求出替换最小的次数。这道题用的是差分数组,用差分数组维护x=[2,2k]的次数。这道题在比赛时我没有想出来,可能是这道题比我之前做的差分数组又绕了一个圈吧。对于每对a[i]+a[n-i+1],设置sum=a[i]+a[n-i+1],minn=min(a[i],a[n-i+1]),maxx=max(a[i],a[n-i+1]).当x=[2,minn]时,两个数必须都修改,因为a[i]原创 2020-07-09 20:47:12 · 170 阅读 · 1 评论 -
P2004 领地选择
传送门二维前缀和模板题#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e3+10;int n,m,c;int a[maxn][maxn],sum[maxn][maxn],num=-0x3f3f3f3f;void init(){ for(int i=1;i...原创 2020-04-04 18:20:05 · 368 阅读 · 0 评论 -
P5638 【CSGRound2】光骓者的荣耀
传送门前缀和#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+10;int n,k;ll a[maxn],sum[maxn],num;int main(){ scanf("%d%d",&n,&k); for(int i=1;i<...原创 2020-04-04 17:49:36 · 130 阅读 · 0 评论 -
P3406 海底高铁
传送门自己独立做出来的题,还是很开心的。按照题目的意思,IC卡只用买一个就可以了,而充值和买票得根据次数买。我们用一个差分数组d[]来表示路程数量。比如说,1号站到2号站,我们当作路程1,这样与下面的a、b、c对应起来了。我们统计经过路程1的所有次数,一次比较买票和充值方式的那种划算即可#include<bits/stdc++.h>using namespace std;...原创 2020-04-04 17:34:07 · 238 阅读 · 0 评论 -
前缀和、差分
文章目录一维前缀和二维前缀和一维差分一维前缀和前缀和是一项很重要的预处理,可以大大降低算法的复杂度。我们可以理解为数组的前i项和.给出数组a[1]、a[2]、a[3]…a[n].设前缀和数组s[i]=a[1]+a[2]+…+a[i]如果我们要算出a[3]+a[4]+…+a[15]的值,可以利用前缀和数组s[15]-s[3-1].s[l,r]=s[r]-r[l-1].void in...原创 2020-04-04 16:10:52 · 176 阅读 · 0 评论 -
P1719 最大加权矩形
超链接二维前缀和#include<bits/stdc++.h>using namespace std;const int maxn=200;int a[maxn][maxn],n,sum=-200;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ ...原创 2020-04-03 22:58:00 · 178 阅读 · 0 评论 -
P3397 地毯
传送门二维差分、二维前缀和的模板题#include<bits/stdc++.h>using namespace std;const int maxn=1100;int n,m,d[maxn][maxn],a[maxn][maxn];void deal(int xl,int yl,int xr,int yr,int val){ ++d[xl][yl]; --d[xr+...原创 2020-04-03 22:36:57 · 163 阅读 · 0 评论 -
P2822 组合数问题
传送门组合数:C(n,m)=C(n-1,m-1)+C(n-1,m),类似于杨辉三角,我们可以通过递推把每一项求出来。题目中求t问,每一问的n,m都是变化的,我们无法通过直接打表的形式。我们可以通过二维前缀和来做。以前其实也学过,但真的忘了,周末再重新整理一下。最后一点就是代码中的f[i][i+1]=f[i][i],因为类似杨辉三角的分布,如果不写的话会影响f[i-1][j]#inclu...原创 2020-04-01 16:10:00 · 98 阅读 · 0 评论 -
前缀和与差分数组
文章目录适合解决的问题差分数组的定义解释借教室(二分加差分数组)适合解决的问题例:n个数,m次操作。每一次操作都给定区间和数值[l,r]+del.最后有q个询问,问[l,r]点的值或者单点查值。注:先进行m个修改操作,后进行查询操作。(离线的区间区间修改问题)差分数组的定义记录当前位置与上一位置数的差值解释原数组 a[5]=9,3,5,4,2差分数组 b[5]=9,-6,2,...原创 2020-01-31 12:27:11 · 822 阅读 · 0 评论