91分,WA第十个点
查看原帖
91分,WA第十个点
749743
e4fsrc2e4fsrc2楼主2022/11/9 22:48
#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/9 22:48
加载中...