1. 思路 障碍物将整个地图分成多个区域。 使用 dfs求得区域数量,区域内含有住房则需要安排超市, 即含有住房的区域数即为需要安排的超市数。 使用bfs 枚举区域内的所有点(x,y),求在(x, y) 安排超市时,该区域内所有房子到达(x,y)的总距离,最终选取最小值加到结果。 对所有的区域进行同样的操作。 2. 代码实现 #include <bits/stdc++.h> int dirs[4][2] = {-1, 0, 1, 0, 0, - 1, 0, 1}; using namespace std; int n, vis[53][53] = {}, vis...