我不明白为什么这就AC了
查看原帖
我不明白为什么这就AC了
1328469
glass_goldfish楼主2024/8/14 17:21
#include<bits/stdc++.h>
#define int long long
#define INF 0x3f3f3f
using namespace std;
int n,m,p1,p2;
int a[1001][1001];
int x,y;
int px[100001],py[100001];
void bfs()
{
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++){
		a[i][j+1]=min(a[i][j+1],a[i][j]+1);
		a[i][j-1]=min(a[i][j-1],a[i][j]+1);
		a[i+1][j]=min(a[i+1][j],a[i][j]+1);
		a[i-1][j]=min(a[i-1][j],a[i][j]+1);
	}
}
signed main()
{
	cin>>n>>m>>p1>>p2;
	memset(a,INF,sizeof(a));
	for(int i=1;i<=p1;i++)
		cin>>x>>y,a[x][y]=0;
	for(int i=1;i<=p2;i++)
		cin>>px[i]>>py[i];
	for(int i=1;i<=p1+100/*这里,写成p1+1就80*/;i++)
		bfs();
	for(int i=1;i<=p2;i++)
		cout<<a[px[i]][py[i]]<<"\n";
	return 0;
}//希望大佬们不要“借鉴”我的代码
2024/8/14 17:21
加载中...