求助,测试点9过不去,已经特判m> x y ,但是还是不对
查看原帖
求助,测试点9过不去,已经特判m> x y ,但是还是不对
1185696
afreshmanofclanguage楼主2024/7/26 19:53
#include<bits/stdc++.h>
using namespace  std;
const int N = 5e3 + 10;
int n,m,x,y,v,value,sum;
int maxx,maxy;
int arr[N][N],s[N][N];
int main()
{
    scanf("%d %d",&n,&m);
    while(n--)
    {
        scanf("%d %d %d",&x,&y,&v);
        arr[x][y] += v; // 记录价值
        sum += v;
        maxx = max(maxx,x);
        maxy = max(maxy,y); // 开辟地图
    }
    if(m >= maxx && m >= maxy)
    {
        cout << sum;
        return 0;
    }
    for(int i = 1;i<=maxx;i++)
        for(int j = 1;j<=maxy;j++)
            s[i][j] = arr[i][j] + s[i-1][j]  + s[i][j-1] - s[i-1][j-1];
            //设置前缀和
    for(int i = m;i<=maxx;i++)
        for(int j = m;j<=maxy;j++)
            value = max(value,s[i][j] - s[i-m][j] - s[i][j-m] + s[i-m][j-m]);
    printf("%d",value);
    return 0;
}
2024/7/26 19:53
加载中...