10pts求助,程序只会输出-1
  • 板块P1238 走迷宫
  • 楼主LYS_Y
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/25 09:04
  • 上次更新2024/8/25 11:44:14
查看原帖
10pts求助,程序只会输出-1
1132049
LYS_Y楼主2024/8/25 09:04
#include <iostream>
using namespace std;
pair<int,int>p;
int v[16][16],k,n,m,t,sx,sy,fx,fy,x,y,ans;
int dx[9]={0,-1,0,1};
int dy[9]={-1,0,1,0};
pair<int,int>r[300];
int f=0;
void dfs(int x,int y,int k){
    r[k]={x,y};
        if(x==fx&&y==fy){
            f=1;
            for(int i=1;i<k;i++){
                cout<<"("<<r[i].first<< ","<<r[i].second<<")"<<"->";
            }
            cout<<"("<<r[k].first<< ","<<r[k].second<<")";
        }
        for(int i=1;i<=4;i++){
            int nx=x+dx[i];
            int ny=y+dy[i];
        if(nx<=n&&nx>=1&&ny<=m&&ny>=1&&v[nx][ny]==0){
        v[nx][ny]=1;
        dfs(nx,ny,k+1);
        v[nx][ny]=0;
    }
}
}
int main () {
   cin >> m >> n ;
   for(int i=1;i<=m;i++){
       for(int j=1;j<=n;j++){
       cin >>v[i][j];
       if(v[i][j]==0){
           v[i][j]=1;
       }
       }
   }
   cin>>sx>>sy>>fx>>fy;
   v[sx][sy]=1;
  dfs(sx,sy,1);
  if(f==0){
      cout <<-1;
  }
}

2024/8/25 09:04
加载中...