从起点出发,类似于 泼水一般,让水流顺着多个方向同时蔓延。 这种方法被称为洪泛法。 洪泛***扩展相同层更多的可能性以拓宽广 度,往往会使用广度优先搜索(BFS)实现。
广度优先搜索可以保证在求解最近、最短、最快等一类问题时,搜索到的首个解就是最优解。 广度优先搜索的一般形式如下:
Q.push(初始状态); // 将初始状态入队
while (!Q.empty()) {
State u = Q.front(); // 取出队首
Q.pop();//出队
for (枚举所有可扩展状态) // 找到u的所有可达状态v
if (是合法的) // v需要满足某些条件,如未访问过、未在队内等
Q.push(v); // 入队(同时可能需要维护某些必要信息)
}
例题:P1443 马的遍历;P1135 奇怪的电梯(含题解)

京公网安备 11010502036488号