求助!为什么CE?jr看不懂
查看原帖
求助!为什么CE?jr看不懂
352666
张恒灿楼主2021/8/12 18:03

记录

#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
struct gr{
	int x,y,t;
	gr(int x,int y,int t):x(x),y(y),t(t){};
};
queue<gr> q;
int n,m,a,b,gx,gy,xl,yl;
int time[505][505];//每次标记时间
int dx[]={0,-1,0,1};
int dy[]={-1,0,1,0};
int main(){
	cin>>n>>m>>a>>b;
	memset(time,-1,sizeof(time));
	for(int i=1;i<=a;i++){
		cin>>gx>>gy;
		q.push(gr(gx,gy,0));
		time[gx][gy]=0;
	}
	while(!q.empty()){//bfs标记感染时间 
		int xx=q.front().x;
		int yy=q.front().y;
		int tt=q.front().t;
		q.pop();
		for(int i=0;i<4;i++){
			int xxx=xx+dx[i];
			int yyy=yy+dy[i];
			int ttt=tt+1;
			if(xxx>=1 && xxx<=n && yyy>=1 && yyy<=m && time[xxx][yyy]==-1){
				time[xxx][yyy]=ttt;
				q.push(gr(xxx,yyy,ttt));
			}
		}
	}
	for(int i=1;i<=b;i++){
		cin>>xl>>yl;
		cout<<time[xl][yl]<<endl;
	}
	return 0;
}
2021/8/12 18:03
加载中...