1 条题解

  • 0
    @ 2024-12-24 9:59:30

    C :

    #include<stdio.h>
    int main(void)
    {
        int k,x;
        scanf("%d",&x);
        for(k=1;k<=x;k++)
        {int i,j,m,n,w,i1,i2,i3,j1,j2,j3,f=0,r=1;
        char mg[105][105];
    int zg[105][105],ins[105][105],tx[4]={0,1,0,-1},ty[4]={1,0,-1,0},q[10005];
            scanf("%d%d",&n,&m);
    
        getchar();
        for(i=0;i<n;i++)
           {
            for(j=0;j<m;j++)
        scanf("%c",&mg[i][j]);
        getchar();}
        for(i=0;i<n;i++)
            for(j=0;j<m;j++)
            {
                zg[i][j]=0;
    ins[i][j]=0;
        if(mg[i][j]=='S') {i1=i;j1=j;}
            }
    q[f]=i1*m+j1;
        zg[i1][j1]=1;
    
        while(f<r)
        {w=q[f];
    
        i2=w/m;j2=w%m;
        f++;
        for(i=0;i<4;i++)
        {
    
    
            i3=i2+tx[i];j3=j2+ty[i];
            if(i3>=0&&i3<n&&j3>=0&&j3<m&&(mg[i3][j3]!='#')&&(!zg[i3][j3]))
            {zg[i3][j3]=1;
                ins[i3][j3]=ins[i2][j2]+1;
                q[r]=i3*m+j3;
                r++;
    
    }
    
        }
    }
    
        for(i=0;i<n;i++)
            for(j=0;j<m;j++)
            if(mg[i][j]=='E')  if(ins[i][j]!=0) printf("%d\n",ins[i][j]);
                else printf("-1\n");
        }
    return 0;
    }
    
    
    
    • 1

    信息

    ID
    1658
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者