社区讨论
BFS 玄关求调
P1506拯救oibh总部参与者 2已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @m4pgr0m3
- 此快照首次捕获于
- 2024/12/15 18:28 去年
- 此快照最后确认于
- 2025/11/04 12:47 4 个月前
CPP
#include<bits/stdc++.h>
#define N 505
using namespace std;
int n,m,ans;
char c[N][N];
int dx[] = {0, 0,1,-1};
int dy[] = {1,-1,0, 0};
void bfs(int i,int j)
{
queue<int> a;
queue<int> b;
a.push(i);
b.push(j);
while(!a.empty())
{
int x,y;
x = a.front();
y = b.front();
a.pop();
b.pop();
for(int k = 0;k < 4;k++)
{
int nx = x + dx[k];
int ny = y + dy[k];
if(nx >= 1 && nx <= n && ny >= 1 && ny <= m && c[nx][ny] == '0')
{
a.push(nx);
b.push(ny);
c[nx][ny] = '*';
}
}
}
return ;
}
int main()
{
cin >> n >> m;
for(int i = 1;i <= n;i++) for(int j = 1;j <= m;j++) cin >> c[i][j];
bfs(1,1);
for(int i = 1;i <= n;i++) for(int j = 1;j <= m;j++) if(c[i][j] == '0') ans++;
// for(int i = 1;i <= n;i++)
// {
// for(int j = 1;j <= m;j++)
// {
// cout << c[i][j] << ' ';
// }
// cout << endl;
// }
cout << ans << endl;
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...