WIFI设备网络规划
2026 华为OD机试真题 4月19日华为OD上机新系统考试真题 200 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
题目描述
WIFI网络中,专业的网络规划不仅可以提升业务体验,还可以减少部署成本。把办公区可以看作一个n* m的网格,部分网格包含墙壁(无法放置AP(WI一FI设备),部分为空地(可以放置AP)。每个AP覆盖范围是一个3*3的正方形(包括自身位置、上下左右、以及对角线区域),且AP和AP的覆盖区域不能重叠,防止相互干扰。
现在给定一个mx n(不超过50 * 50)的网络布局图(墙壁用字符#表示,空地用字符.表示),请设计一个算法,计算最少放置多少数量的AP来覆盖所有空地?如果不能按条件完成覆盖,请返回-1。
输入描述
第一行输入 m n
接下来m行输入每一行字符
输出描述
最少放置多少数量的AP来覆盖所有空地?如果不能按条件完成覆盖,请返回-1。
示例1
输入
7 7
.......
.......
.......
...#...
.......
.......
.......
输出
1
说明
放置一个 AP 在 (1, 1) 位置即可覆盖周围 3x3 区域。
示例2
输入
5 5
..#..
..#..
..#..
..#..
..#..
输出
4
说明
解题思路
核心思想
该问题可以建模为一个**精确覆盖问题(Exact Cover Problem)**的变体。我们需要在网格中的空地(.)上放置最少数量的 AP,使得:
- 每个 AP 覆盖其中心周围的 区域。
- 任意两个 AP 的覆盖区域不得重叠。
- 所有空地必须被覆盖。
算法步骤:
-
预处理:
- 记录所有空地的位置,并分配唯一的 ID。
- 遍历每个空地位置 ,将其作为 AP 的潜在中心。计算该 AP 覆盖的空地集合以及它在网格中占用的所有位置(用于重叠检查)。
- 建立映射关系:每个空地 ID 对应哪些潜在的 AP 中心可以覆盖它。
-
搜索逻辑 (DFS + 回溯):
- 使用深度优先搜索寻找最小的 AP 数量。
- 启发式策略:每次选择一个尚未被覆盖且“可选覆盖方案最少”的空地进行处理。这种“最少选择优先”的策略能极大地压缩搜索空间。
- 冲突检查:在放置一个 AP 时,检查其 的覆盖范围是否与已放置的 AP 覆盖范围重叠。
- 剪枝:如果当前已使用的 AP 数量已经达到或超过已找到的最优解,则停止当前分支的搜索。
-
结果判断:
- 如果搜索能覆盖所有空地,记录最小值。
- 如果无法覆盖所有空地,返回 -1。
复杂度分析
- 时间复杂度:最坏情况下是指数级的,但由于网格大小限制()以及“不重叠”的强约束,实际搜索空间会被大幅削减。启发式搜索在处理此类精确覆盖问题时通常表现良好。
- 空间复杂度:,用于存储网格状态、空地索引及递归栈。