题目背景对应的选择、判断题试题 - GESP 202603 C 四级 - 洛谷有题题目描述现有一片山地可以视为一个 N 行 M 列的网格图第 i 行 j 列的海拔为 hi,j。如果一个单元格的海拔不高于其所有相邻单元格相邻包括上、下、左、右、左上、右上、左下、右下最多 8 个方向的海拔则称该单元格为山谷。请你数一数该片山地中有多少山谷。输入格式第一行包含 2 个整数 N,M表示山地的大小。之后 N 行每行包含 M 个整数 hi,1,hi,2,⋯,hi,M表示海拔。输出格式输出 1 行包含 1 个整数 C表示山谷的数量。输入输出样例输入 #1复制3 5 7 6 6 7 9 6 5 6 7 6 6 5 7 8 9输出 #1复制3说明/提示样例解释样例 1 如图所示绿色单元格代表山谷数据范围保证 1≤N,M≤1001≤hi,j≤105。代码实现#include iostream #include vector using namespace std; int dx[] {-1,-1,-1,0,0,1,1,1}; int dy[] {-1,0,1,-1,1,-1,0,1}; int main() { int n,m; cin n m; vectorvectorint h(n,vectorint(m)); for(int i0;in;i) for(int j0;jm;j) cin h[i][j]; int ans 0; for(int i0;in;i) { for(int j0;jm;j) { bool valley true; for(int d0;d8;d) { int x i dx[d]; int y j dy[d]; if(x0xny0ym) { if(h[i][j] h[x][y]) { valley false; break; } } } if(valley) ans; } } cout ans; return 0; }
《B4501 [GESP202603 四级] 山之谷》
发布时间:2026/6/23 11:39:31
题目背景对应的选择、判断题试题 - GESP 202603 C 四级 - 洛谷有题题目描述现有一片山地可以视为一个 N 行 M 列的网格图第 i 行 j 列的海拔为 hi,j。如果一个单元格的海拔不高于其所有相邻单元格相邻包括上、下、左、右、左上、右上、左下、右下最多 8 个方向的海拔则称该单元格为山谷。请你数一数该片山地中有多少山谷。输入格式第一行包含 2 个整数 N,M表示山地的大小。之后 N 行每行包含 M 个整数 hi,1,hi,2,⋯,hi,M表示海拔。输出格式输出 1 行包含 1 个整数 C表示山谷的数量。输入输出样例输入 #1复制3 5 7 6 6 7 9 6 5 6 7 6 6 5 7 8 9输出 #1复制3说明/提示样例解释样例 1 如图所示绿色单元格代表山谷数据范围保证 1≤N,M≤1001≤hi,j≤105。代码实现#include iostream #include vector using namespace std; int dx[] {-1,-1,-1,0,0,1,1,1}; int dy[] {-1,0,1,-1,1,-1,0,1}; int main() { int n,m; cin n m; vectorvectorint h(n,vectorint(m)); for(int i0;in;i) for(int j0;jm;j) cin h[i][j]; int ans 0; for(int i0;in;i) { for(int j0;jm;j) { bool valley true; for(int d0;d8;d) { int x i dx[d]; int y j dy[d]; if(x0xny0ym) { if(h[i][j] h[x][y]) { valley false; break; } } } if(valley) ans; } } cout ans; return 0; }