社区讨论
悬关求条60pts
P1332血色先锋队参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mieqfo89
- 此快照首次捕获于
- 2025/11/25 23:30 3 个月前
- 此快照最后确认于
- 2025/11/26 09:44 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
const int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
queue<int> qx,qy;
int n,m,a,b,ans=0,anss[505][505];
bool vis[505][505],k[505][505];
int main(){
cin>>n>>m>>a>>b;
int x,y;
for(int i=0;i<a;i++){
cin>>x>>y;
qx.push(x-1);
qy.push(y-1);
}
int mx[100005],my[100005];
for(int i=0;i<b;i++){
cin>>mx[i]>>my[i];
k[mx[i]-1][my[i]-1]=true;
}
int sum=0,sum1=a,p=0;
while(qx.size()>0){
vis[qx.front()][qy.front()]=true;
if(p==sum1){
sum1=sum;
sum=0;
p=0;
ans++;
}
if(k[qx.front()][qy.front()]==true){
anss[qx.front()][qy.front()]=ans;
}
for(int i=0;i<4;i++){
int xx=dx[i]+qx.front(),yy=dy[i]+qy.front();
if(0<=xx&&xx<n&&0<=yy&&yy<m&&vis[xx][yy]==false){
qx.push(xx);
qy.push(yy);
sum++;
vis[xx][yy]=true;
}
}
p++;
qx.pop();
qy.pop();
}
for(int i=0;i<b;i++){
cout<<anss[mx[i]-1][my[i]-1]<<endl;
}
return 0;
}
错#1#2#5#8....
回复
共 1 条回复,欢迎继续交流。
正在加载回复...