30tps求调
查看原帖
30tps求调
1209829
Lhm2010楼主2024/12/21 10:14

#1,#3,#4A了,其余WA了

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int a[500005],c[105];
int lowbit(int x) {
	return x&(-x);
}
int sum(int x) {
	int s;
	for(int i=x; i>0; i-=lowbit(i)) {
		s+=c[i];
	}
	return s;
}
void change(int x,int k) {
	for(int i=x; i<=n; i+=lowbit(i)) {
		c[i]+=k;
	}
}
signed main() {
	cin>>n>>m;
	for(int i=1; i<=n; i++) {
		scanf("%lld",&a[i]);
		change(i,a[i]);
	}
	for(int i=1; i<=m; i++) {
		int d,x,y;
		cin>>d;
		if(d==1) {
			scanf("%lld%lld",&x,&y);
			change(x,y);
		} 
		else {
			scanf("%lld%lld",&x,&y);
			int re=sum(y)-sum(x-1);
			printf("%lld\n",re);
		}
	}
	return 0;
}

蒟蒻求调

2024/12/21 10:14
加载中...