有无懂哥看一哈,为什么re了
查看原帖
有无懂哥看一哈,为什么re了
1219010
shadow_leader楼主2024/5/29 23:54
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
typedef long long int ll;
ll n,m,tr[2*N],a[N];

ll lowbit(ll x)
{
    return x & -x;
}
ll add(ll x,ll v)
{
    for(int i=x;i&&i<=n;i+=lowbit(i))
        tr[i]+=v;
}
ll query(int x)
{
    ll sum=a[x];
    for(int i=x;i;i-=lowbit(i))
        sum+=tr[i];
    return sum;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    while(m--)
    {
        ll s,a,b,d;
        cin>>s;
        if(s==2)
        {
            cin>>a;
            cout<<query(a)<<'\n';
        }
        else
        {
            cin>>a>>b>>d;
            add(a,d);
            add(b+1,-d);
        }
    }
}
2024/5/29 23:54
加载中...