提交时间:2022-08-03 21:34:56

运行 ID: 57156

#include <iostream> using namespace std; int step=0,pathx[100],pathy[100],dx[9]={0,-1,0,1,0,-1,-1,1,1},dy[9]={0,0,1,0,-1,-1,1,-1,1},n,a[100][100],x1,y1,x2,y2,s=0; void move(int x,int y) { step++; pathx[step]=x; pathy[step]=y; if(x==1&&y==n) s++; a[x][y]=1; for(int i=1;i<=8;i++) { int xx=x+dx[i]; int yy=y+dy[i]; if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&a[xx][yy]==0) { move(xx,yy); a[xx][yy]=0; step--; } } } int main(){ cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; move(1,1); cout<<s; }