求条91pts
查看原帖
求条91pts
1171250
w132326820楼主2024/12/16 20:00

#include <bits/stdc++.h>
using namespace std;
const int N=5005;
int r,n,maxx,minx,maxy,miny,maxn;
#define int long long
int a[N][N];
int s[N][N];
int mx(int x,int y){
	return x>y?x:y;
}
int mn(int x,int y){
	return x<y?x:y;
}
signed main(){
	cin>>n>>r;
	for(int i=1;i<=n;i++){
		int x,y,v;
		cin>>x>>y>>v;
		x++,y++;
		a[x][y]+=v; 
		maxx=mx(maxx,x);
		maxy=mx(maxy,y);
		minx=mn(minx,x);
		miny=mn(miny,y);
	} 
	for(short i=1;i<=5001;i++){
		for(short j=1;j<=5001;j++){
			s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
		}
	}
	for(short i=minx;i<=maxx;i++){
		for(short j=miny;j<=maxy;j++){
			if(i-minx>=r&&j-miny>=r){
				maxn=mx(maxn,s[i][j]+s[i-r][j-r]-s[i-r][j]-s[i][j-r]);
			}
		}
	}
	cout<<maxn;
	return 0;
}

2024/12/16 20:00
加载中...