社区讨论

求各位谷民帮解一下 /_ \

P1253扶苏的问题参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m2g5lnr7
此快照首次捕获于
2024/10/19 20:47
去年
此快照最后确认于
2025/11/04 16:47
4 个月前
查看原帖
@一扶苏一 #10数据太大啦下不了
90求解
代码
CPP
#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;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...