全wa求助!!悬关!!
查看原帖
全wa求助!!悬关!!
799079
genshin_StarRail_yl楼主2023/11/11 14:12
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,qx,qy,dx[4]={-1,1,0,0},dy[4]={0,0,-1,1},p[10001][4];
char k;
bool b[101][101];
void bfs()
{
    int t=0,w=1;
    while(t<w)
    {
    	t++;
    	for(int i=0;i<4;i++)
    	{
        	x=p[t][1]+dx[i];
        	y=p[t][2]+dy[i];
        	if(x>0&&x<=m&&y>0&&y<=n&&b[x][y])
        	{
        		w++;
        		p[w][1]=x;
        		p[w][2]=y;
        		p[w][3]=p[t][3]+1;
    			b[x][y]=false;
        		if(x==qx&&y==qy)
        		{
           			cout<<p[w][3]<<endl;
           			return;
        		}
    		}
    	}
    }
    cout<<-1<<endl;
}
int main()
{
    while(cin>>m>>n)
    {
        if(m==0&&n==0)
        	return 0;
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=n;j++)
            {
                cin>>k;
                if(k=='#')
                	b[i][j]=false;
                else 
					b[i][j]=true; 
                if(k=='@')
                {
                    p[1][1]=i;
                    p[1][2]=j;
                    p[1][3]=0;
                    b[i][j]=false;
                }
                if(k=='*')
                {
                    qx=i;
                    qy=j;
                }  
            }
        }
        bfs();
    }
	return 0;
} 
2023/11/11 14:12
加载中...