1 条题解
- 
  0
C++ :
#include<bits/stdc++.h> using namespace std; const int N = 100010; int n,m; //a:原数组,b:差分数组 int a[N],b[N]; //在[l,r]之间插入c void insert(int l,int r,int c){ b[l] += c; b[r+1] -= c; } int main(){ cin>>n>>m; for(int i = 1;i <= n;i++){ cin>>a[i]; } //插入:相当于假定a数组是空的,元素是通过插入形成的 for(int i = 1;i <= n;i++){ insert(i,i,a[i]); } //做m次+c的操作 int l,r,c; for(int i = 1;i <= m;i++){ cin>>l>>r>>c; insert(l,r,c); } //求原数组,相当于求b数组的前缀和 for(int i = 1;i <= n;i++){ b[i] += b[i-1]; } //输出 for(int i = 1;i <= n;i++){ cout<<b[i]<<" "; } return 0; } 
- 1
 
信息
- ID
 - 10004
 - 时间
 - 1000ms
 - 内存
 - 128MiB
 - 难度
 - (无)
 - 标签
 - 递交数
 - 0
 - 已通过
 - 0
 - 上传者