@[MC00101](/user/937468) `dfs` 返回值是 `void`,所以不能输出。改正:`printf("%-5d",dfs(i,j));`->`dfs(i,j);printf("%-5d",minn);`
by yuanxiuan @ 2023-07-15 19:47:11
谢谢大佬
by MC00101 @ 2023-07-15 20:25:46
我知道了
改了下代码
改后代码如下:
```cpp
#include <bits/stdc++.h>
using namespace std;
int x,y,xx,yy;
int minn,k=0;
int fx[9]={0,1,2,-1,2,-2,1,-2,-1};
int fy[9]={0,2,1,2,-1,1,-2,-1,-2};
int a[1001][1001];
void dfs(int i,int j){
if(xx==i&&yy==j){
minn=min(minn,k);
return ;
}
for(int sq=1;i<=8;i++){
int tx=xx+fx[sq],ty=yy+fy[sq];
if(tx>=1&&tx<=x&&ty>=1&&ty<=y&&a[tx][ty]==0){
k++;
a[tx][ty]=1;
dfs(tx,ty);
a[tx][ty]=0;
k--;
}
}
}
int main(){
cin>>x>>y>>xx>>yy;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
minn=INT_MAX;
k=0;
if(xx==i&&yy==j){
printf("%-5d",0);
}
dfs(i,j);
if(minn==INT_MAX){
printf("%-5d",-1);
}
else{
dfs(i,j);
printf("%-5d",minn);
}
}
cout<<endl;
}
return 0;
}
```
by MC00101 @ 2023-07-15 20:27:45
但是全是-1
by MC00101 @ 2023-07-15 20:45:54
但是就连小小样例都全WA了
- <> <>
- || ||
by MC00101 @ 2023-07-15 20:49:07