华为OD机试真题 新系统 2026-08-23 C++【抗洪救灾】 📅 发布时间:2026/9/7 21:06:21 👁 浏览次数: 目录题目思路Code题目题目内容:某地区被划分为 m 行 n 列的网格,areas[i][j] 表示格子海拔,洪水水位为 x。海拔严格大于 x 的格子是未受灾高地。高地之间若水平、垂直或斜向相邻,则属于同一个可救援区域。求未受灾区域数量。输入描述:第一行输入 x、m、n。随后输入 m 行,每行 n 个整数表示海拔。1 = m,n = 1000。输出描述:输出按八个方向连通的高地区域数量。样例 1输入:5 3 4 6 1 7 1 1 6 1 8 1 1 1 9输出:2说明:左上三个海拔为 6、7、6 的格子通过斜向连接成一个区域,右侧 8、9 构成另一个区域。思路整体思路:把海拔严格大于水位的格子看作可访问节点,统计八方向连通块。第一步:逐格扫描矩阵,跳过被淹没或已经访问的格子。第二步:遇到新的高地时区域数加一,并从该格开始 DFS 或 BFS。第三步:搜索八个方向,将同一区域的所有高地标记为已访问。边界处理:海拔等于水位不属于