0
已解决
陈子明
中级光能
中级光能
题目链接: 酷町堂:5014
#include<bits/stdc++.h>
using namespace std;
int n,m,cnt,sx,sy,fx,fy;
int dir[8][2]={{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1},{0,1},{-1,1}};
int h[15],l[15];
bool vis[10][10];
void dfs(int x,int y,int step){
h[step]=x;
l[step]=y;
if(x==fx&&fy==fy){
cnt++;
if(cnt<=5){
for(int i=1;i<=step;i++){
printf("(%d,%d)->",h[i],l[i]);
}
cout<<"("<<fx<<","<<fy<<")"<<"\n";
}
return ;
}
for(int i=0;i<8;i++){
int nx=x+dir[i][0],ny=y+dir[i][1];
if(nx>=1&&nx<=8&&ny>=1&&ny<=8&&!vis[nx][ny]){
vis[nx][ny]=1;
dfs(nx,ny,step+1);
vis[nx][ny]=0;
}
}
return ;
}
int main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
cin>>sx>>sy>>fx>>fy;
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
cin>>vis[i][j];
}
}
dfs(0,0,1);
cout<<cnt;
//fclose(stdin);
//fclose(stdout);
return 0;
}
救救我!!!
5014 0分
在线等,急!!!