xiandaoqiuyao
2025-08-12 21:15:41
发布于:浙江
2阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,fx[4][2]={0,1,1,0,0,-1,-1,0},xxx,yyy,xxxx,yyyy;
char mg[2001][2001];
bool fw[2001][2001];
struct node{
int x,y,step;
}l,r;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mg[i][j];if(mg[i][j]'@'){xxx=i;yyy=j;}if(mg[i][j]'*'){xxxx=i;yyyy=j;}
}
}queue<node> q;
q.push({xxx,yyy,0});
fw[xxx][yyy]=true;
while(!q.empty()){
r=q.front();
q.pop();
if(r.x == xxxx && r.y == yyyy){
cout<<r.step;return 0;
}for(int i=0;i<4;i++){
l.x=r.x+fx[i][0];
l.y=r.y+fx[i][1];
l.step = r.step +1;
if(l.x>=1&&l.x<=n&&l.y>=1&&l.y<=m&&!fw[l.x][l.y]&&mg[l.x][l.y]!='#'){
fw[l.x][l.y]=true;
q.push(l);
}
}
}cout<<"-1";
return 0;
}
这里空空如也
有帮助,赞一个