Advertisement
MaskerQwQ

P1793 求解迷宫问题

Mar 10th, 2023
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. bool v[8][8];
  6. char maze[8][8];
  7. int dx[4]={0,0,-1,1};
  8. int dy[4]={-1,1,0,0};
  9.  
  10.  
  11. void dfs(int a,int b){
  12.     if(a==7&&b==7){
  13.         for(int i=0;i<=7;i++){
  14.             for(int j=0;j<=7;j++){
  15.                 if(v[i][j]!=0){
  16.                     printf(" ");
  17.                 }else{
  18.                     printf("%c",maze[i][j]);
  19.                    
  20.                 }
  21.             }
  22.             cout<<endl;
  23.         }
  24.     }else{
  25.         for(int i=0;i<4;i++){
  26.             int nx=a+dx[i];
  27.             int ny=b+dy[i];
  28.             if(nx>=0&&nx<=7&&ny>=0&&ny<=7&&maze[nx][ny]=='O'&&!v[nx][ny]){
  29.                 v[nx][ny]=1;
  30.                 dfs(nx,ny);
  31.                 v[nx][ny]=0;
  32.             }
  33.         }
  34.     }
  35. }
  36. int main(){
  37.     for(int i=0;i<=7;i++){
  38.         for(int j=0;j<=7;j++){
  39.             scanf("%c",&maze[i][j]);
  40.         }
  41.         getchar();
  42.     }
  43.     v[0][0]=1;
  44.     dfs(0,0);
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement