19 条题解
-
-8
#include using namespace std; int n,m,k,l,r,c,a[1000005],b[1000005]; int main(){ cin>>n>>m>>k; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]-a[i-1]; //构造差分数组 } for(int i=1;i<=m;i++){ cin>>l>>r>>c; b[l]+=c; b[r+1]-=c; } for(int i=1;i<=n;i++){ a[i]=b[i]+a[i-1]; //恢复原数组(加数后) b[i]=a[i]+b[i-1]; //构造前缀和数组 } for(int i=1;i<=k;i++){ cin>>l>>r; cout<<b[r]-b[l-1]<<endl;// 应用前缀和 } }
信息
- ID
- 1282
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 640
- 已通过
- 217
- 上传者