菜鸟求助,送调出的大佬一个关注
查看原帖
菜鸟求助,送调出的大佬一个关注
699271
gaojizhe05楼主2023/11/16 14:55

测试点

logo

代码

#include <bits/stdc++.h>
using namespace std;
const int maxn=5e3;
int n,m,ans=0;
int a[maxn+7][maxn+7];
void Init(){
	cin>>n>>m;
	int x,y,v;
	for(int i=1;i<=n;i++){
		cin>>x>>y>>v;
		a[x][y]=v;
	}
}
void Work(){
	for(int i=1;i<=maxn;i++){
		a[i][0]=a[i-1][0]+a[i][0];
		a[0][i]=a[0][i-1]+a[0][i];
	} 
	for(int i=1;i<=maxn;i++)
	    for(int j=1;j<=maxn;j++)
	        a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+a[i][j];
	for(int i=0;i<=maxn;i++){
	    for(int j=0;j<=maxn;j++){
	        bool p,q;
	        int total=a[i][j];
	        if(i-m>=0){
			    p=1;
			    total-=a[i-m][j];
			}
	        if(j-m>=0){
                q=1;
			    total-=a[i][j-m];
	        }
	        if(p&&q) total+=a[i-m][j-m];
	        ans=max(ans,total);
	    }
	}
	cout<<ans;
}
int main(){
	Init();
	Work();
	return 0;
}
2023/11/16 14:55
加载中...