本蒟蒻看了很久的代码心态崩了只是不知道错在哪里
我请教了一下DFS是能过的
原码:
#include<iostream>
#include<cstring>
using namespace std;
int dx[12]={-2,-2,-2,-2,-1,-1,1,1,2,2,2,2};
int dy[12]={-2,-1,1,2,-2,2,-2,2,-2,-1,1,2};
int a[21][21]={},sx1,sy1,sx2,sy2,minn=0xffffff;
void dfs(int x,int y,int step){
if(x==1&&y==1){
if(step<minn)minn=step;
return ;
}
a[x][y]=1;
int tx,ty;
for(int i=0;i<12;i++){
tx=x+dx[i];
ty=y+dy[i];
if(tx>0&&tx<=20&&ty>0&&ty<=20&&a[tx][ty]==0){
dfs(tx,ty,step+1);
}
}
}
int main(){
cin>>sx1>>sy1>>sx2>>sy2;
dfs(sx1,sx2,0);
cout<<minn<<endl;
minn=0xfffffff;
memset(a,0,sizeof(a));
dfs(sx2,sy2,0);
cout<<minn;
return 0;
}