5 条题解

  • 2
    @ 2023-1-6 11:59:11
    #include<iostream>
    #include<string.h>
    #include<queue>
    using namespace std;
    struct id
    {
    	int x,y,s;
    };
    queue<id>q;
    int n,m,x,y,sx,sy,ans,k;
    int xx[8]={-1,-1,-1,0,0,1,1,1};
    int yy[8]={-1,0,1,-1,1,-1,0,1};
    bool qp[110][110];
    char ch;
    int main()
    {
    	memset(qp,false,sizeof(qp));
    	cin>>m>>n>>x>>y;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			cin>>ch;
    			if(ch=='.')qp[i][j]=true;
    		}
    	}
    	sy=x;
    	sx=n-y+1;
    	q.push(id{sx,sy,0});
    	qp[sx][sy]=false;
    	while(!q.empty())
    	{
    		int tx=q.front().x;
    		int ty=q.front().y;
    		ans=q.front().s;
    		q.pop();
    		for(int i=0;i<8;i++)
    		{
    			int nx=tx+xx[i];
    			int ny=ty+yy[i];
    			if(qp[nx][ny])
    			{
    				q.push(id{nx,ny,ans+1});
    				qp[nx][ny]=false;
    			}
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    

    信息

    ID
    100
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    690
    已通过
    148
    上传者