没开longlong过了请求加强数据
查看原帖
没开longlong过了请求加强数据
1220111
xiaoyang222楼主2024/1/19 16:36

input:

5 1
2147483647 2147483647 2147483647 2147483647 2147483647
2 1 5

out:

10737418235

我的代码out:

2147483643

代码:

#include <iostream>
#include <vector>
using namespace std;
int lowbit(int x){
	return x&-x;
}
void add(int idx,long long num,int n,vector<long long> &t){
	for (int i=idx;i<=n;i+=lowbit(i)){
		t[i]+=num;
	}	
}
int query(int idx,vector<long long> &t){
	long long ans=0;
	for (int i=idx;i>0;i-=lowbit(i)){
		ans+=t[i];
	}
	return ans;
}
int main(){
	int n,m;
	cin >> n >> m;
	vector<long long> t(n+1,0);
	for (int i=1;i<=n;++i){
		long long a;
		scanf("%lld",&a);
		add(i,a,n,t);
	}
	for (int i=0;i<m;++i){
		int op,x,y;
		scanf("%d%d%d",&op,&x,&y);
		if (op==1){
			add(x,y,n,t);
		}else{
			printf("%lld\n",query(y,t)-query(x-1,t));
		}
	}
	return 0;
}
2024/1/19 16:36
加载中...