pppppLF @ 2023-05-30 21:32:05
话不多说上代码
#include <bits/stdc++.h>
using namespace std;
int a[5000005];
int main(){
int n,p,x,y,z;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=p;i++){
cin>>x>>y>>z;
for(int i=x;i<=y;i++){
a[i]+=z;
}
}
sort(a+1,a+n+1);
cout<<a[1];
return 0;
}
by huangruiheng0217 @ 2023-05-30 21:35:45
有个东西叫差分,你这复杂度明显不对
by pppppLF @ 2023-05-30 21:40:12
差分???
by jomy @ 2023-05-30 21:42:35
@pppppLF
for(int i=1;i<=p;i++){
cin>>x>>y>>z;
for(int i=x;i<=y;i++){
a[i]+=z;
}
}
这里复杂度
by jomy @ 2023-05-30 21:43:12
差分看题解
by yzm0325 @ 2023-05-30 21:55:59
@pppppLF 差分是个好东西,就是差分数组每项
原数组 | ||||||
---|---|---|---|---|---|---|
差分数组 |
更改:
原数组 | ||||||
---|---|---|---|---|---|---|
差分数组 |
最后答案取一遍前缀和就行了
by yzm0325 @ 2023-05-30 21:56:19
@Zhuyiming0325 第一张表少个0,我是**
by yzm0325 @ 2023-05-30 21:57:47
@Zhuyiming0325 我服了,理解就行了第二张表错了