91分,WA#10
查看原帖
91分,WA#10
749743
e4fsrc2e4fsrc2楼主2022/11/10 13:43
#include<bits/stdc++.h>
using namespace std;
const int N=101;
struct node{int x,y,step;};
char ch;
int n,m,mx,my,ans=0;
int dx[8]={-1,-1,-1,0,0,1,1,1},dy[8]={-1,0,1,-1,1,-1,0,1};
int mp[N][N];
bitset<N>vis[N];
queue<node>Q;
void bfs(int x,int y){
    Q.push({x,y,0});
    vis[x][y]=1;
    while(!Q.empty()){
        node f=Q.front();
        Q.pop();
        ans=f.step;
        for(int i=0; i<8; i++){
            int nx=f.x+dx[i],ny=f.y+dy[i];
            if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&!mp[nx][ny]&&!vis[nx][ny]){
                vis[nx][ny]=1;
                Q.push({nx,ny,f.step+1});
            }
        }
    }
}
int main(){
    cin>>n>>m>>mx>>my;
    for(int i=1; i<=m; i++){
        for(int j=1; j<=n; j++){
            cin>>ch;
            if(ch=='.')mp[i][j]=0;
            else mp[i][j]=1;
        }
    }
    bfs(mx,my);
    cout<<ans;
    return 0;
}
2022/11/10 13:43
加载中...