社区讨论
实在不懂,为什么全WA
P1332血色先锋队参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo7e515z
- 此快照首次捕获于
- 2023/10/27 00:20 2 年前
- 此快照最后确认于
- 2023/10/27 00:20 2 年前
CPP
#include <iostream>
#include <string>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
typedef pair<int,int> PLL;
const int N = 505;
int n,m,x,y;
int g[N][N];
bool vis[N][N];
vector<PLL> v;
int dx[] = {0,0,1,-1};
int dy[] = {1,-1,0,0};
void bfs()
{
queue<PLL> q;
for (int i = 0 ; i < v.size() ; ++i){
q.push(v[i]);
}
while(q.size()){
auto top = q.front();
q.pop();
for (int i = 0 ; i <= 4 ; ++i){
int rx = top.first + dx[i];
int ry = top.second + dy[i];
if(rx<1||ry<1||rx>n||ry>m) continue;
if(vis[rx][ry]==true) continue;
g[rx][ry] = g[top.first][top.second] + 1;
vis[rx][ry]=true;
q.push({rx,ry});
}
}
}
int main(){
cin >> n >> m >> x >> y;
for (int i = 1 ; i <= x ; ++i){
int a,b;
cin >> a >> b;
v.push_back({a,b});
}
bfs();
for (int i = 1 ; i <= y ; ++i){
int a,b;
cin >> a >> b;
cout << g[a][b] << endl;
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...