听取WA声一片
查看原帖
听取WA声一片
733513
cyqjyxhn楼主2025/1/3 21:18

样例没过,求调

感觉自己废了(本人很懒)

#include <iostream>
#include <cstdio>
using namespace std;
//x-(x&(x-1))
int n,m,b[(int)1e6]={0};
int a[(int)1e6]={0};
int c(int number){
	return number-(number&(number-1));
}
void build(){
	for(int i=1;i<=n;i++)a[i]=b[i]-b[i-c(i)];
	return ;
}
int query(long long x){
	int i=x;
	long long sum=0;
	while(i){
		sum+=a[i];
		i-=c(i);
	}
	return sum;
}
void add(int x,int y){
	int i=x;
	while(i<=n){
		a[i]+=y;
		i+=c(i);
	}
	return ;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&b[i]),b[i]+=b[i-1];
	int u,x,y;
	for(int i=0;i<m;i++){
		scanf("%d%d%d",&u,&x,&y);
		if(u==1)add(x,y);
		else printf("%d",query(y)-query(x-1));
	}
	return 0;
}

然而我确实废了

2025/1/3 21:18
加载中...