1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

  • 本题题面给出矩阵外的海平面高度为 0。

  • 关键想法:从外到内逐层“抬高”水位。把能和外界连通的最低挡水高度维护在一个最小堆里,始终从当前最低的“边界”向内扩展。

  • 具体算法(最小堆 + BFS)

    1. 建一个最小堆,初始把四周边界格入堆,但其有效高度取 max(原高度, 0)(因为外侧是海平面 0)。 同时,边界上若高度为负,需要先补到 0,因此将 -height 加到答案(这些格与海相邻,直接被海水填平到 0)。
    2. 弹出堆顶 (h, x, y),向四邻扩展:

P4451.第3题-计算地形蓄水量

    1000ms Tried: 148 Accepted: 35 Difficulty: 7 所属公司 : 华为
    算法与标签>BFS

题目内容

给定一个表示地图的矩阵,其中元素表示地形海拔高度。当一个地形块在水平和垂直方向均被海拔高度更高的地形包围时,该地形即可蓄水。

矩阵范围之外为海拔为 000,无法蓄水。

要求计算整块地图的蓄水量

输入描述

第 111 行:MMM NNN

MMM 是矩阵的宽,范围是 [1,300][1,300][1,300]

NNN 是矩阵的高,范围是 [1,300][1,300][1,300]

第 222 到第 N+1N+1N+1 行:X1X2…XMX_1X_2…X_MX1​X2​…XM​,为矩阵第一行,每个元素的范围是 [−500,8000][-500,8000][−500,8000]

输出描述

输出 111 个数字,表示地图中的中蓄水量。每个地块面积为 111 ,累加所有可蓄水地块的可蓄水的高度

样例1

输入

1 1
-10

输出

10

说明

第 111 行 111 111 表示该矩阵长宽均为 111

仅有一块海波为 −10-10−10 的地形,蓄水量为 10∗1=1010*1=1010∗1=10

样例2

输入

2 2
-500 -500
-500 -500

输出

2000

说明

第 111 行 222 222 表示矩阵宽和高均为 222

第 222 到 333 行表示矩阵为

−500-500−500 −500-500−500

−500-500−500 −500-500−500

则每块地的海拔为 −500-500−500 ,在地形上看出一个深度为 500500500 的湖,蓄水量为 500∗4=2000500*4=2000500∗4=2000

样例3

输入

4 5
0 2 3 4
2 -1 -1 4
2 0 -1 3
4 4 4 4
4 0 0 1

输出

11

说明

第 111 行 444 555 表示矩阵的宽为 444 ,高为 555

矩阵中如下位置可以蓄水的地块中有 333 块海拔为 −1-1−1,111 块海拔为 000 。周围海拔最低处为 222 ,所以有 333 个地块可以蓄水 3,13,13,1 个地块蓄水 222 。因此蓄水量为 3+3+3+2=113+3+3+2=113+3+3+2=11

000 222 333 444

222 -1 -1 444

222 0 -1 333

444 444 444 444

444 000 000 111

样例4

输入

4 4
0 2 3 4
2 0 0 4
2 0 0 3
4 4 4 4

输出

8

说明

第一行 444 444 表示矩阵的宽和高均为 444

矩阵中如下位置可以蓄水的面积为 444 海拔为 000 ,周围海拔最低处为 222 ,因此蓄水量为 4∗2=84*2=84∗2=8

000 222 333 444

222 0 0 444

222 0 0 333

444 444 444 444

示例图:

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 0, 76ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?