fangjunfeng34 @ 2024-10-19 20:44:50
@一扶苏一 #10数据太大啦下不了
90求解
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,q,a[1000010];//pre[1000010],net[1000010];
void one(int l,int r,ll x){
for(int i=l;i<=r;i++) a[i]=x;
}
void two(int l,int r,ll x){
for(int i=l;i<=r;i++) a[i]+=x;
}
ll san(int l,int r){
ll maxn=-9223372036854775808;
for(int i=l;i<=r;i++) maxn=max(maxn,a[i]);
return maxn;
}
int main(){
scanf("%lld %lld",&n,&q);
for(ll i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
for(ll i=1;i<=q;i++){
int op,l,r;
ll x;
cin>>op;
if(op==1){
cin>>l>>r>>x;
one(l,r,x);
}
else if(op==2){
cin>>l>>r>>x;
two(l,r,x);
}
else if(op==3){
cin>>l>>r;
printf("%lld\n",san(l,r));
}
}
return 0;
}
by fangjunfeng34 @ 2024-10-19 20:51:47
@一扶苏一
by louiesun @ 2024-10-19 21:03:50
@fangjunfeng34 ? 打算N方过百万?
算法性能问题。请使用正确的数据结构。