社区讨论
我打了注释,希望大家能看一看我错在什么地方
P1451求细胞数量参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mi6lnmee
- 此快照首次捕获于
- 2025/11/20 06:54 4 个月前
- 此快照最后确认于
- 2025/11/20 06:54 4 个月前
CPP
#include<iostream>
using namespace std;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int x,y,n,m,p[105][105],tail,head,num;
char f[105][105];
void search(int xx,int yy)
{
p[1][1]=xx;p[1][2]=yy; //该点入队
tail=head=1; //初始化指针
while(tail<=head) //直到没有点可以搜索
{
for(int i=0;i<=3;i++) //从4个方向搜索细胞
{
x=p[tail][1]+dx[i];y=p[tail][2]+dy[i]; //确定搜索目标点
if(f[x][y]!='0') //如果是细胞的一部分的话
if(x>=1&&y>=1&&x<=n&&y<=m) //如果不越界的话
{
p[++head][1]=x; //队首加1,入队
p[head][2]=y; //
f[x][y]='0'; //将该点置为‘0’
}
}
tail++; //队尾加一,进行下一个搜索
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>f[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(f[i][j]!='0')
{
num++;
f[i][j]='0';
search(i,j);
}
cout<<num;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...