1 条题解

  • 0
    @ 2025-8-24 21:16:15

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Maxmilite
    **

    搬运于2025-08-24 21:16:14,当前版本为作者最后更新于2024-04-24 09:16:25,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

    2024 年 4 月语言月赛,由洛谷网校入门计划/基础计划提供。

    题目大意

    nnmm 列的草原。有 kk 个气球。第 ii 个气球,位置在第 xix_i 行第 yiy_i 列上空,距离地面高度 hih_i,气球的颜色为 cic_i

    求解从每个位置向上看,能看到的气球的颜色分别是什么。

    题目分析

    本题仍然可以使用擂台法解决,但是需要做一定的修改。使用两个 n×mn \times m 的二维数组 H,CH, CHH 是擂台,CC 是当前处在擂台中气球的颜色。

    每次读入气球 xi,yi,hi,cix_i, y_i, h_i, c_i。需要将 hih_iHxi,yiH_{x_i, y_i} 比较。如果 hih_i 更小,则更新 Hxi,yi=hi,Cxi,yi=ciH_{x_i, y_i} = h_i, C_{x_i, y_i} = c_i。最终输出 CC 数组即可。

    int H[1005][1005], C[1005][1005];
    
    for (int i = 1; i <= n; ++i) {
      for (int j = 1; j <= m; ++j) {
        H[i][j] = 1000000001; // 小擂台初始时要很大
      }
    }
    
    ...
      
    for (int i = 1; i <= k; ++i) {
      int x, y, h, c;
      cin >> x >> y >> h >> c;
      if (h < H[x][y]) {
        H[x][y] = h;
        C[x][y] = c;
      }
    }
    
    // 输出
    

    视频讲解

    • 1

    信息

    ID
    10080
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者