news 2026/3/26 15:46:32

GESP2025年12月认证C++四级真题与解析(编程题1 (建造))

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP2025年12月认证C++四级真题与解析(编程题1 (建造))

一、先看原题:

二、题目解析:

1、📖 故事背景(先让孩子懂题目)

小 A 有一张地形地图 🗺️
这张地图是一个M 行 N 列的大棋盘。

  • 每一个小格子里,都有一个数字

  • 数字代表这个地方的海拔高度 ⛰️


🚁 停机坪的建造规则

停机坪是一个3 × 3 的正方形区域

□ □ □ □ □ □ □ □ □

要想在这里建停机坪,必须满足:

1️⃣ 这 9 个格子中
👉最高海拔 - 最低海拔 ≤ H

2️⃣ 在所有可以建停机坪的区域中
👉 找到一个海拔总和最大的


🎯 题目要我们做什么?

👉在整张地图上,找所有 3×3 的小正方形

👉 判断哪些“合格”

👉 在合格的里面,选海拔总和最大的那个

👉 输出这个最大总和


2、🧠 整体思路(先有“大地图”)

我们用一句话总结:

🧩“枚举每一个 3×3 → 统计最大值、最小值、总和 → 判断 → 取最大”


3、🧱 一步一步拆解(非常关键)

✅ 第一步:用二维数组存地图

int a[1010][1010];

👉a[i][j]表示:
i行、第j列的高度


✅ 第二步:枚举每一个 3×3 的左上角

如果地图是M × N

  • 行最多到:M - 2

  • 列最多到:N - 2

for (int i = 1; i <= M - 2; i++) { for (int j = 1; j <= N - 2; j++) { // (i, j) 是 3×3 的左上角 } }

🧒 可以这样理解:

👉 停机坪不能“出界”
👉 左上角不能贴到最底、最右


✅ 第三步:检查这个 3×3 区域

在一个 3×3 里,我们要记住三件事:

  • local_max:最大高度

  • local_min:最小高度

  • local_sum:高度总和

int local_max = a[i][j]; int local_min = a[i][j]; int local_sum = 0;

🔍 第四步:真正“扫”这个 3×3

for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { int height = a[i + x][j + y]; local_sum += height; if (height > local_max) local_max = height; if (height < local_min) local_min = height; } }

🧒 可以想象成:

小 A 拿着放大镜 🔍
把这 9 个格子一个一个看一遍


✅ 第五步:判断能不能建停机坪

if (local_max - local_min <= H) { if (local_sum > max_sum) { max_sum = local_sum; } }

如果起伏不大
✔ 而且总和更大
👉 就更新答案!


4、🧠 完整参考程序

#include <iostream> using namespace std; int a[1010][1010]; int main() { int M, N, H; cin >> M >> N >> H; for (int i = 1; i <= M; i++) { for (int j = 1; j <= N; j++) { cin >> a[i][j]; } } int max_sum = 0; for (int i = 1; i <= M - 2; i++) { for (int j = 1; j <= N - 2; j++) { int local_max = a[i][j]; int local_min = a[i][j]; int local_sum = 0; for (int x = 0; x < 3; x++) { for (int y = 0; y < 3; y++) { int height = a[i + x][j + y]; local_sum += height; if (height > local_max) local_max = height; if (height < local_min) local_min = height; } } if (local_max - local_min <= H) { if (local_sum > max_sum) { max_sum = local_sum; } } } } cout << max_sum; return 0; }

5、🧠 这道题在考什么?

🎯 核心能力清单

  • ✅ 二维数组建模

  • ✅ 多层 for 循环

  • ✅ 局部最大 / 最小值

  • ✅ 枚举思想(暴力但合理)

  • ✅ 边界控制(M-2,N-2


6、🎒 给小学生的“记忆口诀”

🧠停机坪四步走

1️⃣ 找左上
2️⃣ 扫 3×3
3️⃣ 算最大最小
4️⃣ 合格就更新答案


🎉 结尾总结

🌟 这是一道“看起来难,其实很规矩”的好题
🌟代码耐心 + 条理性是得分的关键


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/17 17:36:34

【Linux命令大全】001.文件管理之whereis命令(实操篇)

【Linux命令大全】001.文件管理之whereis命令&#xff08;实操篇&#xff09; ✨ 本文为Linux系统文件管理命令的全面汇总与深度优化&#xff0c;结合图标、结构化排版与实用技巧&#xff0c;专为高级用户和系统管理员打造。 (关注不迷路哈&#xff01;&#xff01;&#xff01…

作者头像 李华
网站建设 2026/3/20 6:57:53

基于spring的社区医院挂号预约平台[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着医疗技术的进步与社区医疗需求的增长&#xff0c;传统社区医院挂号方式在效率与便捷性上的不足日益凸显。本文旨在设计并实现一个基于Spring框架的社区医院挂号预约平台&#xff0c;以优化挂号流程&#xff0c;提升医疗服务效率与患者体验。该平台采用Spri…

作者头像 李华
网站建设 2026/3/14 8:57:34

YOLOFuse html audio标签播放警报音效

YOLOFuse 与 HTML Audio 联动实现智能警报音效的技术实践 在智能安防系统日益普及的今天&#xff0c;一个真正“看得清、判得准、响得快”的检测方案&#xff0c;才是保障安全的第一道防线。然而现实往往并不理想&#xff1a;夜间监控画面漆黑一片&#xff0c;传统基于可见光的…

作者头像 李华
网站建设 2026/3/18 2:10:20

YOLOFuse html5 video标签播放检测视频流

YOLOFuse 与 HTML5 视频流&#xff1a;构建多模态目标检测的端到端可视化系统 在城市夜晚的监控画面中&#xff0c;一个模糊的人影悄然穿过昏暗的小巷。可见光摄像头几乎无法捕捉其轮廓&#xff0c;但红外传感器却清晰记录下那团移动的热源。如何让机器“看”得更全、更准&…

作者头像 李华
网站建设 2026/3/23 13:53:53

YOLOFuse TransTrack 基于Transformer的跟踪探索

YOLOFuse TransTrack&#xff1a;多模态目标感知的前沿实践 在城市安防监控中心&#xff0c;一台摄像头突然在深夜丢失了可疑人员的轨迹——光线昏暗、背景杂乱&#xff0c;传统检测算法频频漏检&#xff0c;跟踪ID反复跳变。类似场景在低光照、烟雾或遮挡环境下屡见不鲜&…

作者头像 李华
网站建设 2026/3/12 21:29:20

YOLOFuse多模态检测优势解析:低光、烟雾场景下的精度突破

YOLOFuse多模态检测优势解析&#xff1a;低光、烟雾场景下的精度突破 在地下停车场的深夜监控画面中&#xff0c;普通摄像头只能捕捉到一片漆黑——行人悄然经过却毫无痕迹&#xff1b;而在一场火灾现场&#xff0c;浓烟滚滚&#xff0c;可见光图像早已模糊不清&#xff0c;救…

作者头像 李华