90分求助
查看原帖
90分求助
212295
Shangclever楼主2020/8/12 23:34

代码见下,求大神指点

#include<bits/stdc++.h>
using namespace std;
int a[1002][1002],n,x,y,c[14]={0,1,1,2,2,-1,-1,-2,-2},xx=1e9,yy=1e9,m,d[14]={0,2,-2,1,-1,2,-2,1,-1},j,nnn=-1;
void dfs(int x,int y,int t)
{
	for(int i=1;i<=8;i++)
	{
		int xx=x+c[i],yy=y+d[i];
		if(xx>=1&&yy>=1&&xx<=n&&yy<=m&&a[xx][yy]>t)
		{a[xx][yy]=t;
		dfs(xx,yy,t+1);
		}
	}
}
int main()
{
	cin>>n>>m>>x>>y;
	memset(a,63,sizeof(a));
	a[x][y]=0;
	dfs(x,y,1);
	for(int i=1;i<=n;i++)
	{
	for(int j=1;j<=m;j++)
	if(a[i][j]<=1e9)
	printf("%-5d",a[i][j]);
	else printf("%-5d",nnn);
	printf("\n");
	}
	return 0;
}
2020/8/12 23:34
加载中...