P2280 [HNOI2003]激光炸弹

题目描述

输入输出格式

输入格式:

输入文件名为input.txt

输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi 。

输出格式:

输出文件名为output.txt

输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。

输入输出样例

输入样例#1:

2 1
0 0 1
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]激光炸弹的更多相关文章

  1. 洛谷P2280 [HNOI2003] 激光炸弹 [前缀和]

    题目传送门 题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文 ...

  2. P2280 [HNOI2003]激光炸弹(二维前缀和)

    题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(n≤10000)个目标,用整数xi,yi(0≤xi,yi≤5000)表示目标在地图上的位置,每个目标都有一个价 ...

  3. P2280 [HNOI2003]激光炸弹

    题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为out ...

  4. P2280 [HNOI2003]激光炸弹[前缀和]

    题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为out ...

  5. LUOGU P2280 [HNOI2003]激光炸弹

    传送门 解题思路 二维前缀和. 代码 #include<iostream> #include<cstdio> #include<cstring> using nam ...

  6. BZOJ 1218: [HNOI2003]激光炸弹 前缀DP

    1218: [HNOI2003]激光炸弹 Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值 ...

  7. BZOJ 1218: [HNOI2003]激光炸弹( 前缀和 + 枚举 )

    虽然source写着dp , 而且很明显dp可以搞...但是数据不大 , 前缀和 + 枚举也水的过去..... -------------------------------------------- ...

  8. 1218: [HNOI2003]激光炸弹

    1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1139  Solved: 542[Submit][Statu ...

  9. bzoj 1218 [HNOI2003]激光炸弹 二维前缀和

    [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3022  Solved: 1382[Submit][Status][Di ...

随机推荐

  1. 单机部署tomcat的shell脚本

    单机部署tomcat的shell脚本,来自网络,自己需要时要根据自己的需求改动. #!/bin/sh # ############################################### ...

  2. 后端CORS解决跨域问题

    一 . 为什么会有跨域问题 是因为浏览器的同源策略是对ajax请求进行阻拦了,但是不是所有的请求都给做跨域,像是一般的href 属性,a标签什么的都不拦截. 二 . 解决跨域的方法 解决跨域有两种方法 ...

  3. spring-boot4代码

    App.java package com.kfit; import org.springframework.boot.SpringApplication; import org.springframe ...

  4. 1.1 BASIC PROGRAMMING MODEL(算法 Algorithms 第4版)

    1.1.1 private static void exercise111() { StdOut.println("1.1.1:"); StdOut.println((0+15)/ ...

  5. linux下安装svn服务

    环境centos6.8 64位: 1.安装svn yum install subversion yum install mod_dav_svn 2.创建svn仓库 mkdie /home/svn 3. ...

  6. jQuery Tab选项卡切换代码

    jQuery Tab选项卡切换代码是一款简单的jquery tab选项卡切换网页特效代码样式,可以修改tab选项卡相关样式. 代码下载:http://www.huiyi8.com/sc/10863.h ...

  7. NOIP 2016【蚯蚓】

    好吧,我承认我是个智障-- 这道题一眼看上去就是个堆,然而实际上有单调性. 注意到,如果 \(q = 0\) 的话,将蚯蚓的左右两边分开丢进两个队列中,则两个队列都是单调不增的,因为每次取出的蚯蚓长度 ...

  8. ACM学习历程——HDU1331 Function Run Fun(锻炼多维dp的打表)

    Description We all love recursion! Don't we?        Consider a three-parameter recursive function w( ...

  9. 【Lintcode】102.Linked List Cycle

    题目: Given a linked list, determine if it has a cycle in it. Example Given -21->10->4->5, ta ...

  10. bzoj 4453 cys就是要拿英魂! —— 后缀数组+单调栈+set

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4453 这种问题...一般先把询问离线,排序: 区间对后缀排名的影响在于一些排名大而位置靠后的 ...