20分求调
查看原帖
20分求调
1394462
fightCXT123楼主2024/12/27 13:46

惨不忍睹的测试记录

源码:

#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;
const int maxn = 403;
const int dx[] = {-1, -2, -2, -1, 1, 2, 2, 1};
const int dy[] = {2, 1, -1, -2, 2, 1, -1, -2};
int n, m, x, y;
int dis[maxn][maxn];
queue<pii> q;

int main()
{
	memset(dis, -1, sizeof(dis));
	scanf("%d%d%d%d", &n, &m, &x, &y);
	q.push({x, y});
	dis[x][y] = 0;
	while (!q.empty())
	{
		int nx = q.front().first;
		int ny = q.front().second;
		q.pop();
		for (int i = 0; i < 8; i++)
		{
			int ux = nx + dx[i];
			int uy = ny + dy[i];
			if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && dis[ux][uy] == -1)
			{
				dis[ux][uy] = dis[nx][ny] + 1;
				q.push({ux, uy});
			}
		}
	}
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
			printf("%5d", dis[i][j]);
		printf("\n");
	}
	return 0;
}

必关

2024/12/27 13:46
加载中...