题目是算法分析与设计上的一题
![](https://i-blog.csdnimg.cn/blog_migrate/9bf582366ed5ea258b70c54d588f36d1.png)
输入数据:
1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 1
1 0 1 1 1 1 0 1 0 1
1 0 0 0 0 1 0 1 0 1
1 0 1 0 0 0 0 1 0 1
1 0 1 0 1 1 0 1 0 1
1 0 1 0 0 1 0 1 1 1
1 0 1 0 0 0 0 0 0 1
1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1
代码:
#include<iostream>
#define _ int
#define f(x) for(_ x=0;x<10;++x)
std::pair<_,_>q[99];_ s[11][11],z[4]={-1,0,1,0},u[4]={0,1,0,-1};
void d(_ x,_ y,_ c){s[x][y]=3;q[c]={x,y};
if(x==8&&y==8){f(i){f(j)printf("%d ",s[i][j]);puts("");}puts("");s[x][y]=0;return;}
for(_ k=0;k<4;k++)if(!s[x+z[k]][y+u[k]])d(x+z[k],y+u[k],c+1);s[x][y]=0;}
_ main(){f(i)f(j)std::cin>>s[i][j];d(1,1,0);}