求助
查看原帖
求助
231800
Veranda楼主2022/7/20 14:38
#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 1010;

int d,n;
int a[N][N];
int g[N][N];

int main(){
    cin >> d >> n;
    for(int i = 1;i <= n;i ++){
        int x,y,k;
        cin >> x >> y >> k;
        a[x][y] = k;
    }
    
    /*
    for(int i = 0;i < 129;i ++){
        for(int j = 0;j < 129;j ++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    */
    
    for(int i = 0;i <= 1000;i ++){
        for(int j = 0;j <= 1000;j ++){
            g[i][j] = g[i - 1][j] + g[i][j - 1] - g[i - 1][j - 1] + a[i][j];
        }
    }
    
    int Max = -1,cnt = 0;
    for(int i = 0;i <= 128;i ++){
        for(int j = 0;j <= 128;j ++){
            int t = g[i][j] - g[i - 2 * d - 1][j] - g[i][j - 2 * d - 1] + g[i - 2 * d - 1][j - 2 * d - 1];
            if(Max == t){
                //if(Max == 10) cout << i << " " << j << endl;
                cnt ++;
            }
            if(Max < t){
                cnt = 1;
                Max = t;
                //if(Max == 10) cout << i << " " << j << endl;
            }
            
        }
    }
    cout << cnt << " " << Max;
}

错误数据:

输入

1
11
0 0 10
64 64 10
0 124 5
4 128 5
3 128 1
0 128 4
128 128 10
127 0 10
128 64 10
64 128 9
30 20 10


输出
37 10
标准答案
38 10

差一点(挠头)

2022/7/20 14:38
加载中...