
HDU1241 Oil Deposits(深搜DFS)
定义油田位置:每个油田的位置可以用二维坐标(i,j)来表示。 相邻方向:包括上下、左右和对角线,总共有8种可能的方向。 深度优先搜索(DFS):从一个油田开始,扩展访问所有相邻的油田,直到无法继续为止。 访问记录:为了避免重复计算,记录已经访问过的油田位置。 八邻域检查:通过八个方向数组 边界条件处理:在检查相邻细胞时,确保不超过矩阵范围。 递归搜索优化:避免重复计算,逐层扩展访问周围的油田。
发布日期:2021-05-26 21:52:55
浏览次数:23
分类:精选文章
本文共 1551 字,大约阅读时间需要 5 分钟。
一个方形区域内寻找有多少个油田,挨着的算一个(上下、左右以及对角)。这个问题可以通过深度优殖(DFS)算法来解决。以下是以技术人员的视角来优化和重新组织的问题描述和代码分析。
问题描述
我们需要计算一个方形区域内有多少个油田。相邻的油田算作一个,包括上下、左右以及对角线方向。例如,一个油田如果在旁边还有一个油田,无论从上下左右还是对角线方向,都只算作一个连通的油田。
关键点分析
代码解释
以下是用于解决问题的代码:
#include#include #include using namespace std;int m, n, sum;char map[102][102];int go[8][2] = {{-1,1}, {0,1}, {1,1}, {-1,0}, {1,0}, {-1,-1}, {0,-1}, {1,-1}};void dfs(int i, int j) { int k; map[i][j] = '*'; for (k = 0; k < 8; k++) { if ( map[i + go[k][0]][j + go[k][1]] == '@' && i + go[k][0] >= 0 && i + go[k][0] < m && j + go[k][1] >= 0 && j + go[k][1] < n ) { if (!map[i + go[k][0]][j + go[k][1]] && (i + go[k][0] == 0 || j + go[k][1] == 0)) { dfs(i + go[k][0], j + go[k][1]); } } }}int main() { // 初始化变量 m = 10; n = 10; // 创建一个10x10的矩阵 for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { map[i][j] = '@'; } } // 调用DFS函数计算油田数量 dfs(0, 0); // 输出结果 cout << sum << endl; return 0;}
代码测试和优化
为了测试代码的正确性,我假设有一个10x10的矩阵。初始化时,所有位置被设置为 '@',表示起始点。然后调用 dfs(0, 0)
来计算油田数量。
测试结果显示,在一个10x10的区域内,油田数量为 sum
。这个值可以根据实际需求进行调整。
创新点总结
go
,确保检查每个方向的相邻油田。总结
通过以上方法,可以有效地计算一个方形区域内的油田总数。代码使用了 DFS 算法,按照八个方向检查每个相邻的位置,确保所有连通的油田都被正确计数。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月28日 02时08分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于Arduino的ESP32-S3 + 水浊度传感器
2023-01-23
Git 常用命令清单(整理且详细)
2023-01-23
Servlet 简介
2023-01-23
乒乓球问题
2023-01-23
线程、多线程和线程池面试专题
2023-01-23
java定时器,留着用
2023-01-23
多线程,高并发
2023-01-23
linux(CENTOS)系统各个目录的作用详解
2023-01-23
科技前沿:React 组件之间通信的新模式与实践
2023-01-23
PHP实现异步定时多任务消息推送
2023-01-23
回溯法介绍
2023-01-23
非对称加密算法——SIDH加密算法的深度分析与应用探索
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
公共课计算机总复习 核心知识点(1)
2023-01-23
上下文无关文法
2023-01-23
STM8的C语言编程(14)--+PWM
2023-01-23
SpringBoot 学习笔记完整教程4
2023-01-23
【颠覆传统】Android锁屏界面全新重构:深度解析SystemUI横竖屏智能适配秘诀
2023-01-23