警示后人(60分的进来看)

B3625 迷宫寻路

Miracle1024 @ 2023-05-31 21:22:41

如果你1、6、8、10 WA,那你可能是输出“No”的代码没有运行或没写

调试前代码

#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
typedef long long int ll;
char mp[114][114];
int n,m;
bool vis[114][114]={0},fl=0;
using namespace std;
void dfs (int x,int y){
    if(x<1||y<1||x>n||y>m)return ;
    if(mp[x][y]=='#'||vis[x][y])return ;
    if(mp[x][y]=='.')vis[x][y]=1;
    if(x==n&&y==m){
        cout<<"Yes";
        fl=0;
        return ;
    }
    dfs(x+1,y);
    vis[x+1][y]=0;
    dfs(x-1,y);
    vis[x-1][y]=0;
    dfs(x,y+1);
    vis[x][y+1]=0;
    dfs(x,y-1);
    vis[x][y-1]=0;
}
int main ( )
{
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>mp[i][j];
        }
    }
    dfs (1,1);
    while(1);
    if(fl)cout<<"No";
    return 0;
}

更改:bool vis[114][114]={0},fl=0; \Rightarrowbool vis[114][114]={0},fl=1;

注:代码做了手脚,别想作壁


|