洛谷P2280 [HNOI2003]激光炸弹
P2280 [HNOI2003]激光炸弹
题目描述

输入输出格式
输入格式:
输入文件名为input.txt
输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi 。
输出格式:
输出文件名为output.txt
输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。
输入输出样例
2 1
0 0 1
1 1 1
1
#include<iostream>
#include<cstdio>
using namespace std;
int sum[][],dp[][],ans,map[][],cnt[];
int n,r,max_x,max_y;
int main(){
//freopen("Cola.txt","r",stdin);
scanf("%d%d",&n,&r);
int x,y,z;
for(int i=;i<=n;i++){
scanf("%d%d%d",&x,&y,&z);
max_x=max(max_x,x);
max_y=max(max_y,y);
map[x][y]=z;
}
for(int i=;i<=max_y;i++)
for(int j=;j<=r-;j++)
sum[][i]+=map[j][i];
for(int i=;i<=max_y;i++){
for(int j=;j<=max_x;j++){
sum[j][i]=sum[j-][i]-map[j-][i]+map[j+r-][i];
}
}
for(int i=;i<=r-;i++)
dp[][]+=sum[][i];
ans=max(ans,dp[][]);
for(int i=;i<=r-;i++){
for(int j=;j<=r-;j++){
cnt[i]+=map[i][j];
}
}
for(int i=;i<=max_x;i++){
for(int j=;j<=r-;j++)
cnt[i+r-]+=map[i+r-][j];
dp[i][]=dp[i-][]-cnt[i-]+cnt[i+r-];
ans=max(ans,dp[i][]);
} for(int i=;i<=max_y;i++)
for(int j=;j<=max_x;j++){
dp[j][i]=dp[j][i-]-sum[j][i-]+sum[j][i+r-];
ans=max(ans,dp[i][j]);
}
printf("%d",ans);
} 30分 前缀和
30分 前缀和(写的丑的后果TLE+WA)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,r,dp[][];
void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
{x=x*+c-;c=getchar();}
flag==?n=-x:n=x;
}
int ans=;
int main()
{
read(n);read(r);
for(int i=;i<=n;i++)
{
int x,y,z;
read(x);read(y);read(z);
dp[x+][y+]=z;
}
for(int i=;i<=;i++)
for(int j=;j<=;j++)
dp[i][j]=dp[i-][j]+dp[i][j-]-dp[i-][j-]+dp[i][j];
for(int i=;i<=-r;i++)
for(int j=;j<=-r;j++)
ans=max(ans,dp[i+r][j+r]-dp[i+r][j]-dp[i][j+r]+dp[i][j]);
printf("%d",ans);
return ;
}
100分 标准的前缀和
洛谷P2280 [HNOI2003]激光炸弹的更多相关文章
- 洛谷P2280 [HNOI2003] 激光炸弹 [前缀和]
题目传送门 题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文 ...
- 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 . 输出格式: 输出文件名为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(其值 ...
- BZOJ 1218: [HNOI2003]激光炸弹( 前缀和 + 枚举 )
虽然source写着dp , 而且很明显dp可以搞...但是数据不大 , 前缀和 + 枚举也水的过去..... -------------------------------------------- ...
- 1218: [HNOI2003]激光炸弹
1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1139 Solved: 542[Submit][Statu ...
- bzoj 1218 [HNOI2003]激光炸弹 二维前缀和
[HNOI2003]激光炸弹 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3022 Solved: 1382[Submit][Status][Di ...
随机推荐
- Linux PPTP拨号
试验环境:Linux marsboard 3.4.90 #9 SMP PREEMPT Thu Mar 3 18:28:43 CST 2016 armv7l armv7l armv7l GNU/Linu ...
- File.basename
File.basename函数 返回filename中的最后一条斜线后面的部分.若给出了参数suffix且它和filename的尾部一致时,该方法会将其删除并返回结果. 例: p File.basen ...
- ubuntu 14.04 用 shell 方便安装nginx
nginx.sh apt-get install -y build-essential gcc g++ make m4 libpcre3 libpcre3-dev libcurl4-gnutls-de ...
- node版本管理工具 -- nvm安装与使用
新老项目维护时node环境切换麻烦怎么办? 不用担心,有了nvm ,一个命令就能切换node版本. 首先需要安装nvm工具,进入下载地址. 下载之后安装nvm. nvm安装之后还需要配置两个环境变量( ...
- mvc Bundling 学习记录
因为现在的项目JS引用很多,无意中看到了MVC4的Bundling,开始的时候感觉很不错,将所有的CSS,js文件压缩成一个文件处理,画面调用也很简单 于是,花了一个下午的时候研究了一下,并且通过各种 ...
- 1.2 Data Abstraction(算法 Algorithms 第4版)
1.2.1 package com.qiusongde; import edu.princeton.cs.algs4.Point2D; import edu.princeton.cs.algs4.St ...
- 在CI框架中的配置整合amfphp
之前做的项目用到CI框架和amfphp的整合,主要用于php与flex的交互,在此做一下记录: 一. 安装CI框架: 1. 搭建PHP运行环境,本人在WIN7下用WAMP作测试,安装目录:d:/wa ...
- 分享知识-快乐自己:论 Mybatis中的关联关系(一对多,多对一,多对多)
论:一对多:(举例一个省有多个市)就是实体类中有(市)类型集合属性:多对一:(多个市有一个共同的省)就是类中有(省)类型的属性.下面来介绍:一对一.多对一的使用方式. 一对多方: package ml ...
- T59
Working without a break makes you more prone to error. The great drawback to living near a main road ...
- BZOJ3230 相似子串[后缀数组+二分+st表]
BZOJ3230 相似子串 给一个串,查询排名i和j的子串longest common suffix和longest common prefix 思路其实还是蛮好想的,就是码起来有点恶心.可以发现后缀 ...