luogu P2280 激光炸弹(二维前缀和)
2024-08-28 13:17:33
由题给的xi, yi范围,可以建立二维地图maze[i][j],记录i j范围上的所有目标的价值总和 即有maze[xi][yi] += wi
然后接下来的目标就是求出该二维数组的前缀和
可得到前缀和计算的递推式: maze[i][j] += maze[i-1][j] + maze[i][j-1]-maze[i-1][j-1]
继而可以推出 对于一个边长为r的正方形其覆盖范围价值为 maze[i][j] - maze[i-r][j] - maze[i][j-r] + maze[i-r][j-r]
完整代码如下:
#include <bits/stdc++.h>
using namespace std; int maze[][]; int main() {
int n, r;
scanf("%d%d", &n, &r);
int a = r, b = r;
for(int i = , x, y, w; i < n; i++) {
scanf("%d%d%d", &x, &y, &w);
x++, y++;
a = max(a, x);
b = max(b, y);
maze[x][y] += w;
}
for(int i = ; i <= a; i++)
for(int j = ; j <= b; j++)
maze[i][j] += maze[i-][j] + maze[i][j-] - maze[i-][j-]; int res = ;
for(int i = r; i <= a; i++)
for(int j = r; j <= b; j++)
res = max(res, maze[i][j] - maze[i-r][j] - maze[i][j-r] + maze[i-r][j-r]); printf("%d\n", res);
}
最新文章
- angular中不同controller传值问题
- Ubuntu Server 安装桌面untiy
- [家里蹲大学数学杂志]第033期稳态可压Navier-Stokes方程弱解的存在性
- 将linux用在开发环境中
- 在desk于webi中资料查询不一致
- esriSRGeoCS3Type Constants
- Objective-C中的@Property详解
- ios 改变状态栏颜色
- 分布式Unique ID的生成方法
- 2015最新iherb海淘攻略-图文入门教程
- Asp.net MVC 如何对所有用户输入的字符串字段做Trim处理
- Java面试题合集(二)
- 前端工程师的修真秘籍(css、javascript和其它)
- unity中实现监听鼠标的进入和退出某一个UI按钮
- 学号 20175223 《Java程序设计》第1周学习总结
- idea spring-boot gradle mybatis 搭建开发环境
- 用到的设计模式总结--单例模式+工厂方法模式+Builder模式
- linux cpu 100% 脚本
- Oracle HRMS APIs
- python使用venv环境报Python.h : No such file or direc