我为啥子报错了???
查看原帖
我为啥子报错了???
937468
封禁用户楼主2023/7/15 19:35
#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{
			printf("%-5d",dfs(i,j));
		}
	}
	cout<<endl;
}
	return 0;
}

2023/7/15 19:35
加载中...