在这个代码中,使用了数组mark来标记已经访问过的位置,数组dis来记录每个位置到起点的最短距离。bfs函数使用广度优先搜索来遍历地图。首先将起点入队并标记为已访问,然后开始循环,每次从队列中取出一个位置,然后遍历其四个相邻位置,如果该相邻位置满足条件(未访问过且不是障碍物),则将其入队并标记为已访问,同时更新其最短距离。如果该相邻位置是目标位置,则输出最短距离并终止搜索。

main函数中,首先读入地图的大小和地图的内容,然后找到起点的位置,并调用bfs函数进行搜索。

需要注意的是,这段代码使用了pair数据结构来表示二维坐标,使用queue来实现队列。

c++用广搜解决P1747 好奇怪的游戏不要用vector在这个上面进行改动#includebitsstdc++husing namespace std;typedef pairint int PII ;int n m;int mark10051005;int dis10061005;char a10051005;int sx sy;int d42 = 1 0 -1 0 0 1 0 -1;vo

原文地址: https://www.cveoy.top/t/topic/iaoF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录