yoohoo @ 2024-07-22 16:39:56
想换种思路来做 (不会写线段树)
以下是暴力(应该)代码
#include<iostream>
#include<algorithm>
using namespace std;
long long a[1000011];
long long b[1000011][6];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int ty,x,y,z;
int num,maxn;
for(int i=1;i<=q;i++){
cin>>ty;
if(ty!=3){
b[i][0]=ty;
cin>>x>>y>>z;
b[i][1]=x;
b[i][2]=y;
b[i][3]=z;
}else{
cin>>x>>y;
maxn=-0x3f3f3f;
for(int j=x;j<=y;j++){
num=a[j];
for(int s=1;s<i;s++){
if(j>=b[s][1]&&j<=b[s][2]){
if(b[s][0]==1){
num=b[s][3];
}else{
num+=b[s][3];
}
}
}
if(num>maxn){
maxn=num;
}
}
cout<<maxn<<'\n';
}
}
return 0;
}
还请各位dalao略微提下建议(
by 残阳如血 @ 2024-07-22 16:41:11
@yoohoo 分块(
by yoohoo @ 2024-07-22 16:42:28
@残阳如血 请问具体怎么操作
by run_away @ 2024-07-22 16:47:41
@yoohoo 敢问您不会线段树和分块为什么做这道题?
by yoohoo @ 2024-07-22 16:49:59
@run_away 其实我认为做法或许并不重要(主要是不会
课堂作业
by run_away @ 2024-07-22 16:53:17
@yoohoo 但是暴力不是说换个很快的IO就能过的。。
by yoohoo @ 2024-07-22 16:57:08
@run_away 好吧 那我试试别的方法(
感谢