社区讨论

求条 91pts

P2280[HNOI2003] 激光炸弹参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m48dv9bg
此快照首次捕获于
2024/12/03 19:36
去年
此快照最后确认于
2025/11/04 13:24
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
int a[5005][5005];
int s[5005][5005];
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int n,r;
	cin>>n>>r;
	for(int i=1; i<=n; i++){
		int x,y,w; 
		cin>>x>>y>>w;
		a[x][y]=w;
	}
	for(int i=1; i<=5000; i++){
		for(int j=1; j<=5000; j++){
			s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
		}
	}
	int maxn=LLONG_MIN;
	for(int i=1; i<=5000-r+1; i++){
		for(int j=1; j<=5000-r+1; j++){
			int x1=i-1,yy1=j-1,x2=i+r-1,yy2=j+r-1;
			if(x1<0) x1=0; if(yy1<0) yy1=0; if(x2>5000) x2=5000; if(yy2>5000) yy2=5000;
			maxn=max(maxn,s[x2][yy2]-s[x2][yy1]-s[x1][yy2]+s[x1][yy1]);
		}
	}
	cout<<maxn<<"\n";
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...