1 条题解

  • 0
    @ 2025-12-25 19:34:09
    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    int fx[5]={0,0,1,0,-1};
    int fy[5]={0,1,0,-1,0};
    int tx,ty;
    char a[50][50];
    int b[2500][4]; 
    int head=1,tail=1;
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)
        {
        	for(int j=1;j<=m;j++)
        	{
        		cin>>a[i][j];
    		} 
    	}
    	b[1][1]=1;
    	b[1][2]=1;
    	b[1][3]=1;
    	while(head<=tail)
    	{
    		for(int i=1;i<=4;i++)
    		{
    			tx=b[head][1]+fx[i];
    			ty=b[head][2]+fy[i];
    			if(a[tx][ty]=='.')
    			{
    				a[tx][ty]='#'; 
    				tail++;
    				b[tail][1]=tx;
    				b[tail][2]=ty;
    				b[tail][3]=b[head][3]+1;
    				if(tx==n&&ty==m)
    				{
    					cout<<b[tail][3];
    					exit(0);
    				}
    			}
    		}
    		head++;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    497
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    (无)
    递交数
    204
    已通过
    57
    上传者