91分求助
查看原帖
91分求助
351679
shaun2000楼主2024/6/27 18:18
#include <bits/stdc++.h>

using namespace std;
int f[5005][5005];
int main()
{
    int xm=-1,ym=-1;
    int m,n;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        int x,y,v;
        scanf("%d%d%d",&x,&y,&v);
        x+=1;
        y+=1;
        f[x][y]+=v;
        xm=max(xm,x);
        ym=max(ym,y);
    }
    for(int i=1;i<=xm;i++)
    {
        for(int j=1;j<=ym;j++)
        {
            f[i][j]+=f[i-1][j]+f[i][j-1]-f[i-1][j-1];
        }
    }
    int ans=0;
    for(int i=1;i<=xm-m;i++)
    {
        for(int j=1;j<=ym-m;j++)
        {
            int x=i+m;
            int y=j+m;
            ans=max(ans,f[x][y]-f[x-m][y]-f[x][y-m]+f[i][j]);
        }
    }
    cout<<ans;

	return 0;
}
2024/6/27 18:18
加载中...