万一同一个地点有两个目标呢?
所以是mp[tx+1][ty+1]+=v ,
而非
mp[tx+1][ty+1]=v.
附AC代码。
#include<bits/stdc++.h>
using namespace std;
int m,n,v,x,y,tx,ty,mp[5432][5432],s[5432][5432],ans;
int main(){
cin>>n>>m,x=y=m;
for(int i=1;i<=n;i++)cin>>tx>>ty>>v,mp[1+tx][1+ty]+=v,x=max(x,1+tx),y=max(y,1+ty);
for(int i=1;i<=x;i++)for(int j=1;j<=y;j++)s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+mp[i][j];
for(int i=m;i<=x;i++)for(int j=m;j<=y;j++)ans=max(ans,s[i][j]-s[i-m][j]-s[i][j-m]+s[i-m][j-m]);
cout<<ans;
return 0;
}