题解 P2280 【[HNOI2003]激光炸弹】
题目链接:
思路:
简单的二维前缀和,最后扫描一遍求
max(ans,f[i][j]+f[i-r][j-r]-f[i-r][j]-f[i][j-r]);
两个操作时间复杂度都是N方
注意细节:
- mx,my初始值赋值为边长,否则会有一个点WA
- x,y因为从0开始,都加1方便处理
- 第二遍扫描时,从r开始扫描
- 因为v值较小,可以用short,不过我很好奇为什么不能用char
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;
const int maxn=5005;
int n,r;
short int map[5005][5005];
int f[5005][5005],mx=0,my=0;
template <class T>void read(T & x)
{
int ne=0;char c;
while(!isdigit(c=getchar()))ne=c=='-';
x=c-48;
while(isdigit(c=getchar()))x=(x<<3)+(x<<1)+c-48;
x=ne?-x:x;
return;
}
int main()
{
int x,y,v,ans=0;
read(n),read(r);mx=r,my=r;
for(register int i=1;i<=n;i++)
{
read(x),read(y),read(v);
x++,y++;
map[x][y]=v;
mx=max(mx,x),my=max(my,y);
}
for(register int i=1;i<=mx;i++)
for(register int j=1;j<=my;j++)
f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+map[i][j];
for(register int i=r;i<=mx;i++)
for(register int j=r;j<=my;j++)
ans=max(ans,f[i][j]+f[i-r][j-r]-f[i-r][j]-f[i][j-r]);
printf("%d\n",ans);
return 0;
}
题解 P2280 【[HNOI2003]激光炸弹】的更多相关文章
- 洛谷P2280 [HNOI2003]激光炸弹
P2280 [HNOI2003]激光炸弹 题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ...
- P2280 [HNOI2003]激光炸弹(二维前缀和)
题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(n≤10000)个目标,用整数xi,yi(0≤xi,yi≤5000)表示目标在地图上的位置,每个目标都有一个价 ...
- P2280 [HNOI2003]激光炸弹
题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为out ...
- 洛谷P2280 [HNOI2003] 激光炸弹 [前缀和]
题目传送门 题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文 ...
- P2280 [HNOI2003]激光炸弹[前缀和]
题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为out ...
- LUOGU P2280 [HNOI2003]激光炸弹
传送门 解题思路 二维前缀和. 代码 #include<iostream> #include<cstdio> #include<cstring> using nam ...
- BZOJ 1218: [HNOI2003]激光炸弹 前缀DP
1218: [HNOI2003]激光炸弹 Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值 ...
- 1218: [HNOI2003]激光炸弹
1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1139 Solved: 542[Submit][Statu ...
- bzoj1218: [HNOI2003]激光炸弹(DP二维前缀和)
1218: [HNOI2003]激光炸弹 题目:传送门 题解: 一道经典题目啊... 为了更好的操作...把整个坐标系向右上角移动,从(1,1)开始 那么f[i][j]统计一下以(i,j)作为右上角, ...
- NC20032 [HNOI2003]激光炸弹
NC20032 [HNOI2003]激光炸弹 题目 题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标. 现在地图上有 \(n\) (\(N ≤ 10000\))个目标,用整数 ...
随机推荐
- HearthBuddy炉石兄弟 如何调试ai
Sepefeets's update to botmaker's Silverfish AI This AI is a Custom Class for Hearthranger and Hearth ...
- 487-3279 字符串处理+MAP
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 300264 Accepted: 53757 Descr ...
- LC 640. Solve the Equation
Solve a given equation and return the value of x in the form of string "x=#value". The equ ...
- 基于Python使用scrapy-redis框架实现分布式爬虫
1.首先介绍一下:scrapy-redis框架 scrapy-redis:一个三方的基于redis的分布式爬虫框架,配合scrapy使用,让爬虫具有了分布式爬取的功能.github地址: https: ...
- 64位win10系统无法安装.Net framework3.5的解决方法,提示无法连接internet
1)网上有很多办法但是无法解决 2)控制面板>>疑难解答>>系统和安全性>>使用window更新解决问题 再次执行安装即可
- selenium 常见事件操作
1.文本框输入内容 from selenium import webdriverdriver = webdriver.Chrome(r"C:\Users\Administrator\Desk ...
- Dubbo架构与底层实现
一.Dubbo的设计角色 (1)系统角色Provider: 暴露服务的服务提供方.Consumer: 调用远程服务的服务消费方.Registry: 服务注册与发现的注册中心.1Monitor: 统计服 ...
- 20180817周在ubuntu上面使用kettle一些总结
1 ubuntu上面安装mysql用户名和密码问题: ubuntu上面安装MySQL的时候,如果是自动安装,没设置密码的话,那么用户名不是root. 比如在ubuntu用文本工具打开:gedit /e ...
- 编译安装了的nginx 添加http_ssl_module模块
1.看下编译安装nginx的时候,都编译安装的哪些模块. [root@zabbix ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1. ...
- 中crontab定时器里的"2>&1"含义解释
*/1 * * * * /usr/local/php/bin/php posts.php >> /data/logs/audit_bbsposts.log 2>&1 & ...