#24446: DFS 1ms


Easonsfriend (去寫./Problems?ownerid=89827)

學校 : 不指定學校
編號 : 89827
來源 : [106.105.188.90]
最後登入時間 :
2024-04-23 23:15:35
a982. 迷宮問題#1 | From: [106.105.188.90] | 發表日期 : 2021-02-18 21:16

#include <cstdio>

 

int n,cnt[100][100],inf=100000;

 

void run(int i,int j){

    if(i==n-2 and j==n-2)return;

    if(cnt[i][j]+1<cnt[i+1][j] and cnt[i+1][j]!=-1){

        cnt[i+1][j]=cnt[i][j]+1;

        run(i+1,j);

    }

    if(cnt[i][j]+1<cnt[i-1][j] and cnt[i-1][j]!=-1){

        cnt[i-1][j]=cnt[i][j]+1;

        run(i-1,j);

    }

    if(cnt[i][j]+1<cnt[i][j+1] and cnt[i][j+1]!=-1){

        cnt[i][j+1]=cnt[i][j]+1;

        run(i,j+1);

    }

    if(cnt[i][j]+1<cnt[i][j-1] and cnt[i][j-1]!=-1){

        cnt[i][j-1]=cnt[i][j]+1;

        run(i,j-1);

    }

}

 

int main(){

    scanf("%d\n",&n);

    for(int i=0;i<n;i++){

        for(int j=0;j<n;j++){

            if(getchar_unlocked()=='.')cnt[i][j]=inf;

            else cnt[i][j]=-1;

        }

        getchar_unlocked();

    }

    cnt[1][1]=1;

    run(1,1);

    if(cnt[n-2][n-2]==inf)puts("No solution!");

    else printf("%d\n",cnt[n-2][n-2]);

}

 
#24447: Re:DFS 1ms


Easonsfriend (去寫./Problems?ownerid=89827)

學校 : 不指定學校
編號 : 89827
來源 : [106.105.188.90]
最後登入時間 :
2024-04-23 23:15:35
a982. 迷宮問題#1 | From: [106.105.188.90] | 發表日期 : 2021-02-18 21:17

#0: 25% AC (1ms, 72KB)

通過檢測

#1: 25% AC (1ms, 72KB)

通過檢測

#2: 25% AC (1ms, 128KB)

通過檢測

#3: 25% AC (1ms, 92KB)

通過檢測
 
ZeroJudge Forum