社区讨论

本来0分不震惊的,可下载的数据震惊我了,求大佬帮助

P1332血色先锋队参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo2l3rir
此快照首次捕获于
2023/10/23 15:36
2 年前
此快照最后确认于
2023/10/23 15:36
2 年前
查看原帖
原代码
CPP
#include <iostream>
#include <cmath>
#include <queue>
using namespace std;
long long n, m, A, B, vis[510][510], jl[510][510],
dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, -1, 1};
struct zuobiao
{
	long long x, y;
};
zuobiao a[101000], b[101000];
queue<zuobiao> q;
int main ()
{
	cin >> n >> m >> A >> B;
	for(long long i = 1; i <= A; i++)
	{
		cin >> a[i].x >> a[i].y;
		q.push(a[i]);
		vis[a[i].x][a[i].y] = 1;
	}
	for(long long i = 1; i <= B; i++)
	{
		cin >> b[i].x >> b[i].y; 
		if(vis[b[i].x][b[i].y] == 1) cout << 0 << endl;
		vis[b[i].x][b[i].y] = 2;
	}
	cout << endl << endl << endl << endl;
	while (q.empty() != 1)
	{
		zuobiao c = q.front();
		q.pop();
		for(long long i = 0; i < 4; i++)
		{
			zuobiao d = {c.x + dx[i], c.y + dy[i]};
			if(d.x >= 1 && d.x <= n && d.y >= 1 && d.y <= m
			&& vis[d.x][d.y] != 1)
			{
				if(vis[d.x][d.y] == 1)
				{
					jl[d.x][d.y] = min(jl[d.x][d.y], jl[c.x][c.y] + 1);
				} else
				{
					jl[d.x][d.y] = jl[c.x][c.y] + 1;	
				} 
				vis[d.x][d.y] = 1;
				q.push(d);
			}
		}
	}
	for(long long i = 1; i <= B; i++) cout << jl[b[i].x][b[i].y] << endl;
	return 0;
}
我下载的数据 #1 输入 (应该正常)
CPP
10 10 50 50
9 3
6 2
1 4
3 6
9 2
8 1
7 2
3 10
2 1
5 2
8 6
6 1
2 2
2 8
2 5
2 9
9 7
2 6
8 7
8 5
9 4
10 6
10 1
2 3
10 3
8 9
3 7
5 3
7 1
9 9
4 7
4 9
1 1
6 3
10 8
10 7
8 4
10 5
3 9
7 9
4 4
9 8
10 10
6 9
5 7
7 5
9 5
1 9
7 7
3 3
8 1
7 6
9 3
4 10
10 1
7 2
2 8
6 6
2 7
3 5
1 4
5 8
4 8
4 1
3 8
3 3
2 1
8 2
1 1
8 10
9 4
8 7
2 10
9 5
9 8
4 2
10 9
8 9
6 10
4 7
5 2
3 7
8 8
6 9
4 9
10 10
5 7
2 3
1 3
4 6
10 5
2 9
4 4
9 10
1 6
8 4
4 3
1 8
6 3
9 2

输出 (震惊)

CPP
ਰ਱ਰ਱ਰਰਰਲ਱਱ਰ਱਱ਲ਱ਰਰ਱ਰ਱ਰਰ਱ਰਰ਱਱ਰ਱ਰਰਰ਱ਰਰਰਰਰ਱਱ਰਰਰ਱਱ਰ਱਱ਰਰ

求解释

回复

3 条回复,欢迎继续交流。

正在加载回复...