#include #include #include using namespace std;/**************************************************************************************************************** 题意:S为起点,D为终点,X为墙壁, '.'为空路,问是否可以从S走到D 思路: 1,广搜找路径 注意: 1,每次要从队首元素的邻接点开始遍历 2,定义了三个队列,一个存元素,另外两个存坐标 Input: Output: 4 4 No S.X. ..X. ..XD ..X.****************************************************************************************************************/char map[10][10];int visit[10][10]={0};int exist=0;queue Q1;queue Q2,Q3;void bfs(int X,int Y){ visit[X][Y]=1; Q1.push(map[X][Y]); Q2.push(X); Q3.push(Y); while(!Q1.empty()) { char c=Q1.front(); int x=Q2.front(); int y=Q3.front(); //cout<<"c= "< <<" x= "< <<" y= "< < >n>>m>>T) { memset(map,'X',sizeof(map)); for(int i = 1;i <= n;i ++) for(int j = 1;j <= m;j ++) cin>>map[i][j]; for(int i = 1;i <= n;i ++) for(int j = 1;j <= m;j ++) if(map[i][j] == 'S') bfs(i,j); if(!exist) cout<<"No"<