题解
【入门】迷宫的路径数量
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int f1[10][10],a[20][20],n,s; int fx[10]={0,-1,0,1,1,1,0,-1,-1}; int fy[10]={0,1,1,1,0,-1,-1,-1,0}; void f(int x,int y){ f1[x][y]=1;//表示走过 for(int i=1;i<=8;i++){// int tx=x+fx[i]; int ty=y+fy[i]; if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&a[tx][ty]==0&&f1[tx][ty]==0){ if(tx==1&&ty==n){//到终点右上角 s++;//路径数量+1 }else{ f(tx,ty);//继续找 } f1[tx][ty]=0;//回溯 } } } int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j];//读入迷宫状态 } } f(1,1); cout<<s; return 0; }
- 1