求助
  • 板块灌水区
  • 楼主CleverPenguin
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/1/22 10:21
  • 上次更新2024/1/22 13:20:34
查看原帖
求助
1000166
CleverPenguin楼主2024/1/22 10:21

RT,什么都输不进去

#include<bits/stdc++.h>
using namespace std;
const int N=2050;
struct szszm{
	int c[N][N];
}c,cp,cq,cpq;
int n,m;
char t;
int lowbit(int x){
	return x&(-x);
}
void modify(szszm p,int x,int y,int u){
	for(int i=x;i<=n;i+=lowbit(i)){
		for(int j=y;j<=m;j+=lowbit(j)){
			p.c[i][j]+=u;
		}
	}
	return ;
}
int sum(szszm p,int x,int y){
	int ans=0;
	for(int i=x;i>0;i-=lowbit(i)){
		for(int j=y;j>0;j-=lowbit(j)){
			ans+=p.c[i][j];
		}
	}
	return ans;
}
int query(int a,int b){
	return sum(cpq,a,b)-sum(cp,a,b)*(b+1)-sum(cq,a,b)*(a+1)+sum(c,a,b)*(a+b+a*b+1);
}
int main(){
	scanf("X%d%d",&n,&m);
	while(cin>>t){
		int a1,a2,b1,b2,e;
		//cin>>a1>>b1>>a2>>b2;
		if(t=='L'){
			cin>>e;
			modify(c,a1,b1,e);
			modify(c,a1,b2+1,-e);
			modify(c,a2+1,b1,-e);
			modify(c,a2+1,b2+1,e);
			
			modify(cp,a1,b1,e*a1);
			modify(cp,a1,b2+1,-e*a1);
			modify(cp,a2+1,b1,-e*(a2+1));
			modify(cp,a2+1,b2+1,e*(a2+1));
			
			modify(cq,a1,b1,e*b1);
			modify(cq,a1,b2+1,-e*(b2+1));
			modify(cq,a2+1,b1,-e*b1);
			modify(cq,a2+1,b2+1,e*(b2+1));
			
			modify(cpq,a1,b1,e*a1*b1);
			modify(cpq,a1,b2+1,-e*a1*(b2+1));
			modify(cpq,a2+1,b1,-e*(a2+1)*b1);
			modify(cpq,a2+1,b2+1,e*(a2+1)*(b2+1));
		}else{
			cout<<query(a2,b2)-query(a2,b1-1)-query(a1-1,b2)+query(a1-1,b2-1)<<endl;
		}
	}
	return 0;
}
2024/1/22 10:21
加载中...