奇怪的评测增加了!
查看原帖
奇怪的评测增加了!
101301
幻影学霸刘楼主2020/8/30 15:10

明明我的样例过了,下下来的数据也过了,为毛评测就WA声一片

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,m,a,b,t[512][512];
void dfs(int x,int y,int z)
{
	if(z>200)
	{
		return;
	}
	if(t[x][y]==-1)
	{
		t[x][y]=z;
	}
	else
	{
		t[x][y]=min(t[x][y],z);
	}
    if(y+1<=m&&x+2<=n&&(t[x+2][y+1]==-1||t[x+2][y+1]>z+1)) dfs(x+2,y+1,z+1);
    if(y-1>0&&x+2<=n&&(t[x+2][y-1]==-1||t[x+2][y-1]>z+1)) dfs(x+2,y-1,z+1); 
    if(y+2<=m&&x+1<=n&&(t[x+1][y+2]==-1||t[x+1][y+2]>z+1)) dfs(x+1,y+2,z+1);
    if(y+2<=m&&x-1>0&&(t[x-1][y+2]==-1||t[x-1][y+2]>z+1)) dfs(x-1,y+2,z+1);
    if(y-1>0&&x-2>0&&(t[x-2][y-1]==-1||t[x-2][y-1]>z+1)) dfs(x-2,y-1,z+1);
    if(y+1<=m&&x-2>0&&(t[x-2][y+1]==-1||t[x-2][y+1]>z+1)) dfs(x-2,y+1,z+1);
    if(y-2>0&&x+1<=n&&(t[x+1][y-2]==-1||t[x+1][y-2]>z+1)) dfs(x+1,y-2,z+1);
    if(y-2>0&&x-1>0&&(t[x-1][y-2]==-1||t[x-1][y-2]>z+1)) dfs(x-1,y-2,z+1);
	return;
}
int main()
{
	cin>>n>>m>>a>>b;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			t[i][j]=-1;
		}
	}
	dfs(a,b,0);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cout<<t[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2020/8/30 15:10
加载中...