求助为什么我的差分会超时 80分
查看原帖
求助为什么我的差分会超时 80分
1340313
mowanggao楼主2024/5/10 17:38
//二维前缀和 
#include<iostream>
using namespace std;
const int maxn=5e6;
int x,y,z,a[maxn],mmin=maxn,n,t;
int diff[maxn];
int main(){
scanf("%d%d",&n,&t);
for(int i=1;i<=n;i++){
	scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++)diff[i]=a[i]-a[i-1];
while(t--){//差分修改 o
	scanf("%d%d%d",&x,&y,&z);
    diff[x]+=z;
    diff[y+1]-=z;
}
for(int i=1;i<=n;i++){//差分修改还原 O
	a[i]=a[i-1]+diff[i];
	if(a[i]<mmin){
		mmin=a[i];
	}
}
printf("%d",mmin);
return 0;
}

2024/5/10 17:38
加载中...