2026年3月GESP真题及题解(C++四级):山之谷
2026年3月GESP真题及题解C四级山之谷题目描述现有一片山地可以视为一个N NN行M MM列的网格图第i ii行j jj列的海拔为h i , j h_{i,j}hi,j。如果一个单元格的海拔不高于其所有相邻单元格相邻包括上、下、左、右、左上、右上、左下、右下最多8 88个方向的海拔则称该单元格为山谷。请你数一数该片山地中有多少山谷。输入格式第一行包含2 22个整数N , M N, MN,M表示山地的大小。之后N NN行每行包含M MM个整数h i , 1 , h i , 2 , ⋯ , h i , M h_{i,1}, h_{i,2}, \cdots, h_{i,M}hi,1,hi,2,⋯,hi,M表示海拔。输出格式输出1 11行包含1 11个整数C CC表示山谷的数量。输入输出样例 #1输入 #13 5 7 6 6 7 9 6 5 6 7 6 6 5 7 8 9输出 #13说明/提示样例解释样例 1 如图所示绿色单元格代表山谷数据范围保证1 ≤ N , M ≤ 100 1 \leq N, M \leq 1001≤N,M≤1001 ≤ h i , j ≤ 10 5 1 \leq h_{i,j} \leq 10^51≤hi,j≤105。思路分析算法思路读入网格行数n、列数m及海拔数据h。定义方向数组dx和dy分别表示八个方向的行列偏移量。对于每一个单元格(i, j)调用check(i, j)函数遍历八个方向计算相邻单元格坐标(nx, ny)。如果相邻坐标在网格范围内且当前单元格海拔h[i][j]大于该相邻单元格海拔则说明当前单元格不是山谷返回false。如果所有合法邻居都不满足h[i][j] h[nx][ny]则当前单元格是山谷返回true。统计所有返回true的单元格数量输出结果。关键点只考虑实际存在的邻居通过边界判断nx1 nxn ny1 nym代码实现#includebits/stdc.husingnamespacestd;intn,m;// 网格行数、列数inth[110][110];// 海拔数组下标从1开始intcnt0;// 山谷计数器// 八个方向的行列偏移量 (顺序: 左上、上、右上、右、右下、下、左下、左)intdx[8]{-1,-1,-1,0,1,1,1,0};intdy[8]{-1,0,1,1,1,0,-1,-1};// 检查单元格 (x, y) 是否为山谷boolcheck(intx,inty){for(inti0;i8;i){// 遍历八个方向intnxxdx[i];// 邻居行坐标intnyydy[i];// 邻居列坐标// 判断邻居是否在网格内if(nx1nxnny1nym){// 如果当前海拔 邻居海拔则不满足山谷条件if(h[x][y]h[nx][ny])returnfalse;}}// 所有合法邻居都不高于当前单元格则当前是山谷returntrue;}intmain(){// 读入网格大小cinnm;// 读入海拔数据for(inti1;in;i){for(intj1;jm;j){cinh[i][j];}}// 遍历每个单元格统计山谷个数for(inti1;in;i){for(intj1;jm;j){if(check(i,j))cnt;}}// 输出结果coutcnt;return0;}功能分析正确性严格按照题目定义每个单元格需检查所有八个方向边界处忽略不存在的邻居只要存在一个海拔更低的邻居即判定为非山谷。对于等高的情况代码判定为山谷符合“不高于”的要求。边界处理通过if (nx1 nxn ny1 nym)过滤无效邻居不会越界。时间复杂度双重循环遍历所有单元格O(N×M)。每个单元格检查最多8个邻居常数时间。总复杂度 O(8×N×M) ≈ 8×10⁴N,M ≤ 100。空间复杂度海拔数组h[110][110]占用固定大小约 110×110×4 字节 ≈ 48 KB。各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}【秘籍汇总】完整csp信奥赛C学习资料1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转3、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转4、csp信奥赛冲刺一等奖有效刷题题解CSP信奥赛C初赛及复赛高频考点真题解析持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转5、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2427286.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!