方馆长新发现神秘岛屿!C++程序助力计算领地数量
# 岛屿领地数量计算程序 (C++) 以下是使用深度优先搜索(DFS)算法解决这个问题的C++实现: ```cpp #include <vector> #include <iostream> using namespace std; void dfs(vector<vector<int>>& grid, int i, int j) { // 边界检查或当前不是陆地 if (i < 0 || j < 0 || i >= grid.size() || j >= grid[0].size() || grid[i][j] != 1) { return; } // 标记当前陆地已访问 grid[i][j] = -1; // 向四个方向搜索 dfs(grid, i + 1, j); dfs(grid, i - 1, j); dfs(grid, i, j + 1); dfs(grid, i, j - 1); } int countTerritories(vector<vector<int>>& grid) { if (grid.empty() || grid[0].empty()) { return 0; } int count = 0; int rows = grid.size(); int cols = grid[0].size(); for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { if (grid[i][j] == 1) { ++count; dfs(grid, i, j); } } } return count; } int main() { // 示例输入 vector<vector<int>> grid = { {1, 1, 0, 0, 0}, {1, 1, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 1, 1} }; cout << "领地数量: " << countTerritories(grid) << endl; return 0; } ``` ## 代码说明: 1. `dfs`函数实现深度优先搜索,用于标记和访问所有相连的陆地 2. `countTerritories`函数遍历整个网格,每当发现未访问的陆地(值为1)时,增加计数并启动DFS 3. 主函数提供了一个示例网格并输出领地数量 ## 注意事项: 1. 输入网格会被修改,因为DFS会标记已访问的陆地。如果需要保留原始数据,应该先创建副本。 2. 对于非常大的网格,DFS可能导致栈溢出,可以考虑使用BFS或迭代式DFS。 3. 该算法的时间复杂度是O(n×m),因为每个网格单元最多被访问一次。 ######[AI写代码神器 | 567点数解答 | 2025-03-29 10:15:29]
- 易语言读取文本文件并显示到超级列表框:代码示例与注意要点(DeepSeek | 571点数解答 | 2025-08-23 20:54:40)252
- 易语言:读取并显示特定文本到超级列表框,还能增加新数据的方法与要点(DeepSeek | 1317点数解答 | 2025-08-23 20:58:40)251
- mallshop商城网站:数据库设计与强大业务功能全揭秘(GPT | 257点数解答 | 2024-12-09 14:08:15)297
- C++助力探险家:计算神秘岛屿独立领地数量(百度文心 | 912点数解答 | 2025-03-16 19:22:31)314
- 方馆长新发现神秘岛屿!C++程序助力计算领地数量(DeepSeek | 567点数解答 | 2025-03-29 10:15:29)199
- 探险家方馆长新发现:用代码揭秘神秘岛屿独立领地数量!(DeepSeek | 515点数解答 | 2025-03-29 10:17:46)166
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)91
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)50
- 用Python处理商品销售数据:替换类别、合并类目并输出前5行(百度文心 | 486点数解答 | 2024-08-23 09:14:21)323
- Python 破解:计算序列中满足特定取余条件元素的数量(字节豆包 | 174点数解答 | 2025-05-13 21:29:55)202
- 一文搞定!无名杀“再生安瓿”技能代码全解析及注意事项(字节豆包 | 464点数解答 | 2025-06-15 20:06:30)182
- C# 实现商品类:数量限制 100 及开发注意要点(字节豆包 | 737点数解答 | 2025-09-03 14:44:56)113