70分爆搜

P3372 【模板】线段树 1

LemonadeXmasMyron @ 2024-08-06 10:44:21

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100005];
int main() {
    cin>>n>>m;
    for(int i=1; i<=n; i++) {
cin>>a[i];
    }
    for(int i=1;i<=m;i++){
        int x,l,r,v;
        cin>>x;
        if(x==1){
            cin>>l>>r>>v;
            for(int j=l;j<=r;j++){
                a[j]+=v;
            }
        }else{
            int s=0;
            cin>>l>>r;
            for(int j=l;j<=r;j++){
                s+=a[j];
            }
            cout<<s<<"\n";
        }
    }
    return 0;
}

by Jerrycyx @ 2024-08-06 10:55:13

wyy,jbl


by KAqwq @ 2024-08-06 11:00:56

这他妈是啥爆搜。


by Jean_Gunnhildr @ 2024-08-06 21:15:25

首先 TLE

其次 不开longlong见祖宗

保证任意时刻数列中所有元素的绝对值之和 ≤10^18

对于TLE,用树状数组或者线段树

对于longlong typedef long long int ;


|