1 条题解

  • 0
    @ 2024-11-19 19:53:30

    简约树状数组模板

    使用了c++11的语法糖Lambda表达式

    #include<cstdio>
    using namespace std;
    int tree[510000],s,n,m,a1,a2,a3;
    int main() {
        auto add=[](int x,int k){while (x<=n)tree[x]+=k,x+=x& -x;};
        auto sum=[](int x){int ans=0;while (x!=0)ans+=tree[x],x-=x & -x;return ans;};
    	scanf("%d%d",&n,&m);
    	for (int i=1; i<=n&&scanf("%d",&s); i++) add(i, s);
    	while (m--&&scanf("%d%d%d",&a1,&a2,&a3))if(a1==1)add(a2,a3);else printf("%d\n",sum(a3)-sum(a2-1));
    	return 0;
    }
    

    压行真是太开心了

    信息

    ID
    7404
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    37
    已通过
    19
    上传者