【BZOJ】1218: [HNOI2003]激光炸弹(前缀和)
2024-08-23 01:47:30
题目
题目描述
输入输出格式
输入格式:
输入文件名为input.txt
输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi 。
输出格式:
输出文件名为output.txt
输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。
输入输出样例
输入样例#1:
2 1
0 0 1
1 1 1
输出样例#1:
1
分析
看题后发现,似乎暴力不难打。看了看数据范围,喜闻乐见。
所以总得来说是个两维前缀和。
此处a[i][j]是i,j处的价值,sum[i][j]是以i,j为右下角端点,0,0为左上角端点的矩形中所有位置的总价值。
同理,最后枚举一下左上角端点的位置即可。
吐槽:题意杀了我好久,我怕是期中语文要爆0了。
代码
#include <cstdio>
#include <algorithm>
using namespace std;
int sum[5005][5005];
int main()
{
int n,r,ans=-1;
scanf("%d%d",&n,&r);
for(int i=0;i<n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
scanf("%d",&sum[x+1][y+1]);
}
for(int i=1;i<5005;i++)
{
for(int j=1;j<5005;j++)
sum[i][j]+=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
}
for(int i=0;i+r<5002;i++)
{
for(int j=0;j+r<5002;j++)
ans=max(ans,sum[i][j]-sum[i+r][j]-sum[i][j+r]+sum[i+r][j+r]);
}
printf("%d",ans);
return 0;
}
最新文章
- Unity3D 角色(物体) 移动方法 合集
- Windows桌面开发者的必备软件
- php intval()函数
- 关于windbg的认识
- 修改CMD命令窗口编码并保存方法
- Struts2 知识体系
- SQL 查询同一天日期内的数据
- file_get_contents()实现get+post请求
- 压缩SQLServer数据库日志的一个存储过程
- rabbitMQ权限相关命令
- 旅行商问题(Traveling Salesman Problem,TSP)的+Leapms线性规划模型及c++调用
- 用Python将一个列表分割成小列表
- iOS开发线程安全问题
- js快速排序算法解析
- Feign 使用入门
- MySQL 5.6 Replication 复制 FAQ
- java相关知识集锦
- http-equiv=";Refresh"; 实现定时刷新页面
- Android Studio 1.1.0汉化初步出炉!
- 最近在研究asp.net mvc
热门文章
- root用户下使用sqlplus登录Oracle数据库
- Android程序员学WEB前端(3)-HTML(3)-表单嵌套-Sublime
- CUDA Samples: Ray Tracking
- No form of payment has been added yet.
- Happy Swifting!
- Python3 移动文件——合集
- >;=<; 在set和dict中的不同
- HihoCoder 1063 : 缩地 树形DP第二题(对象 边)
- JPA级联(一对一 一对多 多对多)注解【实际项目中摘取的】并非自己实际应用
- jquery插件的2种扩展开发(jQuery.extend和jQuery.fn.extend的区别)