So easy
2026-02-26 12:48:19
发布于:上海
6阅读
0回复
0点赞
用BFS和DFS都可以,反正看自己的喜好
我这里用的是BFS
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int n,m,sx,sy,fx,fy;
char a[45][45];
bool vis[45][45];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
struct node{
int x,y;
};
void BFS(){
queue<node> q;
q.push({sx,sy});
vis[sx][sy]=true;
while(q.size()){
node now=q.front();
q.pop();
//错把&&写成了||,导致WA了(悲
if(now.x==fx&&now.y==fy){
cout<<"YES";
return;
}
for(int i=0;i<4;i++){
int nx=now.x+dx[i];
int ny=now.y+dy[i];
if(nx<1||nx>n||ny<1||ny>m){
continue;
}
if(!vis[nx][ny]&&a[nx][ny]=='.'){
vis[nx][ny]=true;
q.push({nx,ny});
}
}
}
cout<<"NO";
}
signed main(){
cin>>n>>m>>sx>>sy>>fx>>fy;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
BFS();
}
WA了一次,然后发现有一个条件没写对
这里空空如也







有帮助,赞一个