zoukankan      html  css  js  c++  java
  • UVa 10360

      题目大意:有一个1025*1025的矩阵,每个矩阵元素保存这个点上老鼠的数量。现有一种气体炸弹,能覆盖“半径”为d的矩形,在这个范围内可以消灭所有的老鼠,让你找出合适的放置炸弹的位置使的消灭的老鼠数量最多。

      如果暴力枚举的话会超时,考虑到题中有老鼠的点不超过20000个,可以用m[i][j]保存将炸弹放到第i行第j列时消灭老鼠的数量(初始化为0),当某个点有老鼠时更新“半径”为d范围内的m值(加上该点的老鼠数量),这样可以减小时间复杂度。

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <cstring>
     4 using namespace std;
     5 #define MAXN 1030
     6 
     7 int m[MAXN][MAXN];
     8 
     9 int main()
    10 {
    11 #ifdef LOCAL
    12     freopen("in", "r", stdin);
    13 #endif
    14     int T;
    15     scanf("%d", &T);
    16     while (T--)
    17     {
    18         int d;
    19         scanf("%d", &d);
    20         int n;
    21         scanf("%d", &n);
    22         memset(m, 0, sizeof(m));
    23         for (int i = 0; i < n; i++)
    24         {
    25             int x, y, num;
    26             scanf("%d%d%d", &x, &y, &num);
    27             int x_min = max(0, x-d);
    28             int x_max = min(1024, x+d);
    29             int y_min = max(0, y-d);
    30             int y_max = min(1024, y+d);
    31             for (int p = x_min; p <= x_max; p++)
    32                 for (int q = y_min; q <= y_max; q++)
    33                     m[p][q] += num;
    34         }
    35         int lmax = 0, x = 0, y = 0;
    36         for (int i = 0; i <= 1024; i++)
    37             for (int j = 0; j <= 1024; j++)
    38                 if (m[i][j] > lmax)
    39                 {
    40                     x = i;
    41                     y = j;
    42                     lmax = m[i][j];
    43                 }
    44         printf("%d %d %d
    ", x, y, lmax);
    45     }
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    python中的quopri模块
    使用ant来压缩js代码,这个很有用
    js 压缩工具 google closure compiler
    web中,canvas render 跟 webgl render 的区别
    越南unicode范围
    复杂度分析 数据结构
    svn bat批处理
    游戏 有限状态机参考:
    python list排序
    游戏 AOI相关
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3288055.html
Copyright © 2011-2022 走看看