全TLE了是什么个情况

P3372 【模板】线段树 1

linminmohan @ 2024-10-25 01:39:41

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define il inline

const int maxn=1e5+5;
int a[maxn], tr[maxn<<2], lazy[maxn<<2];
int n, m, t, b, c, d;
il int read()
{
    int num=0, f=1;
    char c=getchar();
    while(c<'0'||c>'9') {if(c=='-') f=-1, c=getchar();}
    while(c>='0'&&c<='9') {num=(num<<3)+(num<<1)+(c^48), c=getchar();}
    return num*f;
} 
il void build(int fa,int l,int r)
{
    if(l==r)
    {
        tr[fa]=a[l];
        return; 
    }
    int mid=(l+r)>>1;
    build(fa<<1,l,mid);
    build(fa<<1|1,mid+1,r);
    tr[fa]=tr[fa<<1]+tr[fa<<1|1];
}
il void push_down(int fa,int l,int r)
{
    int mid=(l+r)>>1;
    tr[fa<<1]+=lazy[fa]*(mid-l+1);
    lazy[fa<<1]+=lazy[fa];
    tr[fa<<1|1]+=lazy[fa]*(r-mid);
    lazy[fa<<1|1]+=lazy[fa];
    lazy[fa]=0;
}
int query(int ql,int qr,int fa,int l,int r)
{
    int ans=0;
    if(ql<=l&&qr>=r) return tr[fa];
    int mid=(l+r)>>1;
    push_down(fa,l,r);
    if(ql<=mid) ans+=query(ql,qr,fa<<1,l,mid);
    if(qr>mid) ans+=query(ql,qr,fa<<1|1,mid+1,r);
    return ans;
}
il void chang(int ql,int qr,int fa,int l,int r,int sum)
{
    if(ql<=l&&qr>=r)
    {
        lazy[fa]+=sum;
        tr[fa]+=sum*(r-l+1);
        return;
    }
    push_down(fa,l,r);
    int mid=(l+r)>>1;
    if(ql<=mid) chang(ql,qr,fa<<1,l,mid,sum);
    if(qr>mid) chang(ql,qr,fa<<1|1,mid+1,r,sum);
    tr[fa]=tr[fa<<1]+tr[fa<<1|1];
}
signed main()
{
    n=read(), m=read();
    for(int i=1;i<=n;i++) a[i]=read();
    build(1,1,n);
    while(m--)
    {
        t=read();
        if(t==1)
        {
            b=read(), c=read(), d=read();
            chang(b,c,1,1,n,d);
        }
        if(t==2)
        {
            b=read(), c=read();
            printf("%lld\n",query(b,c,1,1,n));
        }
    }
    return 0;
} 

by summ1t @ 2024-10-25 06:41:40

@linminmohan 快读出锅了。

while(c<'0'||c>'9') {if(c=='-') f=-1, c=getchar();}

改成这个

while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}

f=-1后面是分号


by ZMQ_Ink6556 @ 2024-10-25 07:38:52

@summ1t 你确定你这个不会 CE?


by summ1t @ 2024-10-25 07:46:28

@ZMQ_Ink6556 不会啊


by ZMQ_Ink6556 @ 2024-10-25 08:12:13

@summ1t 中文分号


|