求助!只过了最后一个点!(悬关)
查看原帖
求助!只过了最后一个点!(悬关)
804607
rainygame楼主2023/7/10 12:45
#include <bits/stdc++.h>
using namespace std;
#define MAXN 5002

int n, m, x, y, v, ans, maxx, maxy;
int a[MAXN][MAXN];

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    cin >> n >> m;
    m = min(m, MAXN-1);
    while (n--){
    	cin >> x >> y >> v;
    	a[x+1][y+1] += v;
    	maxx = max(maxx, x+1);
    	maxy = max(maxy, y+1);
	}
	maxx = max(maxx, m);
	maxy = max(maxy, m);
	for (int i(1); i<=maxx; ++i){
		for (int j(1); j<=maxy; ++j) a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1];
	}
	
	for (int i(m); i<=maxx; ++i){
		for (int j(m); j<=maxy; ++j){
			x = i-m;
			y = j-m;
			ans = max(ans, a[i][j]-a[x][j]-a[i][x]+a[x][y]);
		}
	}
	
	cout << ans;

    return 0;
}

2023/7/10 12:45
加载中...