刚学OI,求助一道二维树状数组的站外题
  • 板块学术版
  • 楼主OutsideR_
  • 当前回复7
  • 已保存回复7
  • 发布时间2022/3/6 13:28
  • 上次更新2023/10/28 07:09:37
查看原帖
刚学OI,求助一道二维树状数组的站外题
288506
OutsideR_楼主2022/3/6 13:28

RT

不知道为什么就超时了,但还是对了一个点

原题目

请各位大佬帮忙看看

复制代码到粘帖板
#include <iostream>
#define ll long long
using namespace std;
ll c[5005][5005],n,m,aa,bb,cc,dd;
ll lowbit(ll x){
	return x&-x;
}
void update(ll x,ll y,ll k){
	for(ll i=x;i<=n;i+=lowbit(i)){
		for(ll j=y;j<=m;j+=lowbit(j)){
			c[i][j]+=k;
		}
	}
	return;
}
ll ans;
ll sum(ll x,ll y){
	ans=0;
	for(ll i=x;i;i-=lowbit(i)){
		for(ll j=y;j;j-=lowbit(j)){
			ans+=c[i][j];
		}
	}
	return ans;
}
int tmp;
int main(){
	cin>>n>>m;
	while(cin>>tmp){
		cin>>aa>>bb>>cc;
		if(tmp==1){
			update(aa,bb,cc);
		}
		else{
			cin>>dd;
			cout<<sum(cc,dd)-sum(aa-1,bb-1)+sum(aa,bb-1)+sum(aa-1,bb);
		}
	}
	return 0;
}
2022/3/6 13:28
加载中...