2301_80463174: 啊好棒
c++ 深搜,猴群王千睿: #include #include using namespace std;// 方向数组,用于遍历矩阵的上下左右四个方向int dx[] = {-1, 1, 0, 0};int dy[] = {0, 0, -1, 1};// 检查一个位置是否在矩阵范围内bool isValid(int x, int y, int m, int n) {return x >= 0 && x < m && y >= 0 && y < n;}// 深度优先搜索函数,用于找到一群猴子void dfs(int x, int y, vector& matrix, vector& visited) {visited[x][y] = true;int m = matrix.size();int n = matrix[0].size();for (int i = 0; i < 4; ++i) {int newX = x + dx[i];int newY = y + dy[i];if (isValid(newX, newY, m, n) && matrix[newX][newY] == 0 && !visited[newX][newY]) {dfs(newX, newY, matrix, visited);}}}int countMonkeyGroups(vector& matrix) {int m = matrix.size();int n = matrix[0].size();vector visited(m, vector(n, false));int monkeyGroups = 0;for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (matrix[i][j] == 0 && !visited[i][j]) {dfs(i, j, matrix, visited);monkeyGroups++;}}}return monkeyGroups;}int main() {int m, n;cin >> m >> n;vector matrix(m, vector(n));for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {cin >> matrix[i][j];}}int result = countMonkeyGroups(matrix);cout