title: 激光炸弹
date: 2023-12-14 19:42:59
tags: 前缀和
categories: 算法进阶指南
题目链接
− − > --> −−> 传送门
题目大意
思路
代码
cpp
#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define sz size()
#define bpt __builtin_popcountll
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
const int N = 5e3 +10, mod = 1e9 + 7;
int g[N][N];
int main()
{
int n,R;
cin >> n >> R;
R = min(R,5001);
for(int i = 1; i <= n; i++){
int x,y,c;
cin >> x >> y >> c;
g[++x][++y] += c;
}
for(int i = 1; i <= 5001; i ++){
for(int j = 1; j <= 5001; j ++){
g[i][j] = g[i-1][j] +g[i][j - 1] - g[i-1][j-1] + g[i][j];
}
}
int ans = 0;
for(int i = R ; i <= 5001; i ++){
for(int j = R ; j <= 5001; j ++){
ans = max(ans,g[i][j] - g[i-R][j] - g[i][j - R] + g[i - R][j - R]);
}
}
cout << ans << endl;
return 0;
}