0
已解决
#include<bits/stdc++.h>
using namespace std;
const int N=10;
int cnt;
int sx,sy,ex,ey;
int a[N][N],u[1000],v[1000];
bool vis[N][N];
int dir[][2]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}};
void dfs(int x,int y,int step){
u[step]=x;
v[step]=y;
if(x==ex&&y==ey){
cnt++;
for(int i=1;i<=5;i++){
cout<<"("<<u[i]<<","<<v[i]<<")";
if(i!=step)cout<<"->";
else cout<<endl;
}
return;
}
for(int i=0;i<8;i++){
int dx=x+dir[i][0];
int dy=y+dir[i][1];
if(dx>=1&&dx<=8&&dy>=1&&dy<=8&&a[dx][dy]==0&&!vis[dx][dy]){
vis[dx][dy]=1;
dfs(dx,dy,step+1);
vis[dx][dy]=0;
}
}
}
int main(){
cin>>sx>>sy>>ex>>ey;
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
cin>>a[i][j];
}
}
vis[sx][sy]=1;
dfs(sx,sy,1);
cout<<cnt;
return 0;
}
代码如上
本来是准备写5014的
结果这个输出像螃蟹一样
样例输入
8 8 3 6
0 0 1 0 1 1 1 0
0 0 0 0 1 1 0 1
0 1 0 0 1 0 0 0
0 0 0 1 0 0 0 1
1 0 1 0 1 1 0 1
0 1 0 1 0 0 1 0
1 1 0 0 1 0 1 0
0 0 1 1 0 1 1 0
大家可以自己去试一下,很好玩
