社区讨论
小脑萎缩求救
P1451求细胞数量参与者 5已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m0pbk3h1
- 此快照首次捕获于
- 2024/09/05 21:24 去年
- 此快照最后确认于
- 2024/09/06 11:39 去年
CPP
#include <bits/stdc++.h>
using namespace std;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int lie=0;
int ans=0;
int hang=0;
int tu[100][100]={0};
struct ai
{
int x;
int y;
};
void bfs(int a,int b)
{
queue <ai> q;
ans++;
tu[a][b]=0;
q.push({a,b});
do
{
ai t=q.front();
q.pop();
for(int i=0;i<=3;i++)
{
int ix=t.x+dx[i];
int iy=t.y+dy[i];
if((ix>=0)&&(ix<hang)&&(iy>=0)&&(iy<lie)&&(tu[ix][iy]))
{
q.push({ix,iy});
tu[ix][iy]=0;
}
}
}
while(!q.empty());
}
int main()
{
cin>>hang>>lie;
//fill(tu[0],tu[102],1);
for(int i=0;i<hang;i++)
{
for(int j=0;j<lie;j++)
{
char temp=getchar();
int t=temp-48;
if(t!=0)
{
tu[i][j]=1;
}
}
}
for(int i=0;i<hang;i++)
{
for(int j=0;j<lie;j++)
{
if(tu[i][j])
{
bfs(i,j);
}
}
}
cout<<ans<<endl;
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...