90分8WA求助
查看原帖
90分8WA求助
1092311
Damn_wu楼主2024/9/1 14:04
#include<iostream>
using namespace std;
int map[500][500];
void set()
{
	for (int i = 0; i < 500; i++)
	{
		for (int j = 0; j < 500; j++)
		{
			map[i][j] = -2;
		}
	}
}
void set2(int a, int b)
{
	for (int i = 1; i <= a; i++)
	{
		for (int j = 1; j <= b; j++)
		{
			map[i][j] = -1;
		}
	}
}
int m1[] = {2,2,1,1,-1,-1,-2,-2};
int m2 [] = {1,-1,2,-2,2,-2,1,-1};
int quex[10000] = { 0 };
int quey[10000] = { 0 };
int main()
{
	set();
	int n, m, x, y;
	cin >> n >> m >> x >> y;
	set2(n, m);
	int head = 0;
	int tail = 1;
	quex[0] = x;
	quey[0] = y;
	map[x][y] = 0;
	do
	{
		for (int i = 0; i < 8; i++)
		{
			if (map[quex[head] + m1[i]][quey[head] + m2[i]] == -1)
			{
				quex[tail] = quex[head] + m1[i];
				quey[tail] = quey[head] + m2[i];
				tail++;
				map[quex[head] + m1[i]][quey[head] + m2[i]] = map[quex[head]][quey[head]]+1;
				//cout << count << "??" << quex[head] + m1[i] << quey[head] + m2[i]<<endl;
			}
		}
		head++;
	} while (head < tail);
	
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				cout << map[i][j]<<" ";
			}cout << endl;
		}
	
	return 0;
}
2024/9/1 14:04
加载中...