求助
  • 板块学术版
  • 楼主_TLJYatm_
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/10/8 20:10
  • 上次更新2023/11/4 04:19:54
查看原帖
求助
45199
_TLJYatm_楼主2021/10/8 20:10
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
string st[505];
int dx[4]={0,0,-1,1},dy[4]={-1,1,0,0},vis[505][505];
int n,m,r1,c1,r2,c2;
bool p;
void dfs(int x,int y){
    if (p) return;
    for (int k=0; k<4; k++){
        int vx=x+dx[k],vy=y+dy[k];
        if (vx>0 && vx<=n && vy>0 && vy<=m){
            if (vis[vx][vy]==1){
                if (vx==r2 && vy==c2){
                    p=true;
                    return;
                }
            }
            else{
                vis[vx][vy]=1;
                dfs(vx,vy);
            }
        }
    }
}
int main(){
    scanf("%d%d",&n,&m);
    for (int i=1; i<=n; i++) getline(cin,st[i]);
    for (int i=1; i<=n; i++)
      for (int j=1; j<=m; j++){
          if (st[i][j-1]=='X') vis[i][j]=1;
      }    
    scanf("%d%d",&r1,&c1);
    scanf("%d%d",&r2,&c2);
    p=false;
    dfs(r1,c1);
    if (p) printf("YES");
    else printf("NO");
    return 0;
}

为什么输入字符串以后无法继续输入啊

2021/10/8 20:10
加载中...