社区讨论
50分
P1596[USACO10OCT] Lake Counting S参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m2iwygt1
- 此快照首次捕获于
- 2024/10/21 19:08 去年
- 此快照最后确认于
- 2025/11/04 16:36 4 个月前
CPP
#include <bits/stdc++.h>
#include <unistd.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ldb;
const ll MAXN=105;
char a[MAXN][MAXN];
ll n,m,ans;
const ll dir[][2]={{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}};
struct Item{
ll x;
ll y;
};
void bfs(ll x,ll y){
queue<Item>q;
q.push({x,y});
while(!q.empty()){
Item curr=q.front();
q.pop();
for(ll i=0;i<8;++i){
ll nx=curr.x+dir[i][0],ny=curr.y+dir[i][1];
if(a[nx][ny]=='.'){
continue;
}
q.push({nx,ny});
a[nx][ny]='.';
}
}
}
int main() {
memset(a,'.',sizeof(a));
cin>>n>>m;
for(ll i=1;i<=n;++i){
cin>>(a[i]+1);
}
for(ll i=1;i<=n;++i){
for(ll j=1;j<=m;++j){
if(a[i][j]=='.')continue;
bfs(i,j);
++ans;
}
}
cout<<ans<<endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...