码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ1218:[HNOI2003]激光炸弹

时间:2017-07-08 21:09:41      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:tput   getc   地图   problems   const   close   sub   范围   discuss   

1218: [HNOI2003]激光炸弹

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2375  Solved: 1081
[Submit][Status][Discuss]

Description

一 种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标。现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在 [0,5000])表示目标在地图上的位置,每个目标都有一个价值。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的 正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标将不会被摧毁。 0

Input

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

Output

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

Sample Input

2 1
0 0 1
1 1 1

Sample Output

1

HINT

Source

 

技术分享
 1 #include <bits/stdc++.h>
 2 
 3 inline void read(int &x)
 4 {
 5     x = 0;char ch = getchar();
 6     char c = ch;
 7     while(ch > 9 || ch < 0)c = ch, ch = getchar();
 8     while(ch <= 9 && ch >= 0)x = x * 10 + ch - 0, ch = getchar();
 9     if(c == -)x = -x;
10 }
11 inline int min(int a, int b){return a > b ? b : a;}
12 inline int max(int a, int b){return a > b ? a : b;}
13 
14 const int INF = 0x3f3f3f3f; 
15 const int MAXN = 5000 + 10;
16 
17 int q;
18 int sum[MAXN][MAXN],R;
19 int tmp1, tmp2;
20 int n,m;
21 
22 inline void put()
23 {
24     for(int i = 1;i <= n;++ i)
25     {
26         for(int j = 1;j <= m;++ j)
27             printf("%d", sum[i][j]);
28         putchar(\n);
29     }
30 }
31 int main()
32 {
33     scanf("%d %d", &q, &R);
34     for(register int i = 1;i <= q;++ i)
35     {
36         scanf("%d %d", &tmp1, &tmp2);
37         tmp1 ++;tmp2 ++;
38         scanf("%d", &sum[tmp1][tmp2]);
39         n = max(n, tmp1);m = max(m, tmp2);
40     }
41     for(register int i = 1;i <= 5001;++ i)
42         for(register int j = 1;j <= 5001;++ j)
43             sum[i][j] += sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
44     int ans = -1;
45     for(register int i = 5001;i >= R;-- i)
46         for(register int j = 5001;j >= R;-- j)
47                 ans = max(ans, sum[i][j] - sum[i - R][j] - sum[i][j - R] + sum[i - R][j - R]);
48     printf("%d", ans);
49     return 0;
50 }
View Code

 

BZOJ1218:[HNOI2003]激光炸弹

标签:tput   getc   地图   problems   const   close   sub   范围   discuss   

原文地址:http://www.cnblogs.com/huibixiaoxing/p/7137905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!