样例过了,测试全Wa,下了组数据发现。。。
查看原帖
样例过了,测试全Wa,下了组数据发现。。。
398155
某kob在此楼主2021/2/21 15:37

这是代码

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

struct value
{
	int x_axis, y_axis;
};

int n, m, x, y;
int vis[405][405];
int x_next1[2] = {1, -1}, y_next1[2] = {2, -2};
queue <value> q;

int main(void)
{
	memset(vis, -1, sizeof(vis));
	cin >> n >> m >> x >> y;
	
	vis[x][y] = 0;
	value v, temp;
	temp = {x, y};
	q.push(temp);
	
	while(!q.empty())
	{
		v = q.front();
		q.pop();
		for (int i = 0; i <= 1; i ++)
			for (int f = 0; f <= 1; f ++)
			{
				int X, Y;
				X = v.x_axis + x_next1[i];
				Y = v.y_axis + y_next1[f];
				if (vis[X][Y] == -1 && (X > 0 && X <= n) && (Y > 0 && Y <= m))
				{
					temp = {X, Y};
					q.push(temp);
					vis[X][Y] = vis[v.x_axis][v.y_axis] + 1;
				}
			}
		
		for (int i = 0; i <= 1; i ++)
			for (int f = 0; f <= 1; f ++)
			{
				int X, Y;
				X = v.x_axis + y_next1[f];
				Y = v.y_axis + x_next1[i];
				if (vis[X][Y] == -1 && (X > 0 && X <= n) && (Y > 0 && Y <= m))
				{
					temp = {X, Y};
					q.push(temp);
					vis[X][Y] = vis[v.x_axis][v.y_axis] + 1;
				}
			}
	}
	
	for (int i = 1; i <= n; i ++)
	{
		for (int f = 1; f <= m; f ++)
			cout << vis[i][f] << "     ";
		cout << endl;
	}
	
	return 0;
}

最神奇的是,全错之后,我下了一组数据,

输入:

6 9 1 1

输出:

0    3    2    3    2    3    4    5    4    
3    4    1    2    3    4    3    4    5    
2    1    4    3    2    3    4    5    4    
3    2    3    2    3    4    3    4    5    
2    3    2    3    4    3    4    5    4    
3    4    3    4    3    4    5    4    5    

我的答案竟然一模一样,但是测试为什么全Wa? 蒟蒻求助

2021/2/21 15:37
加载中...