题目说明
数据范围
样例
代码
差分:前缀和的逆运算
结果:
构造差分数组:
求b数组的前缀和即可得到答案:
#include <bits/stdc++.h> using namespace std; const int N = 100010; int a[N],b[N]; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) //构造差分数组 { scanf("%d",&a[i]); b[i]=a[i]-a[i-1]; } while(m--) //开始操作 { int l,r,c; scanf("%d%d%d",&l,&r,&c); b[l]+=c; b[r+1]-=c; } for(int i=1;i<=n;i++) //求b数组的前缀和,得到答案 { a[i]=a[i-1]+b[i]; printf("%d ",a[i]); } return 0; }