社区讨论

..

P1451求细胞数量参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6vcy2v
此快照首次捕获于
2025/11/20 11:26
4 个月前
此快照最后确认于
2025/11/20 11:26
4 个月前
查看原帖
#include<bits/stdc++.h> using namespace std; int dx[4]={-1,0,1,0}; int dy[4]={0,1,0,-1}; int bz[100][100],num=0,n,m; void doit(int p,int q) { int x,y,t,w,i; int h[1000][2]; num++; bz[p][q]=0; t=0;w=1;h[1][1]=p;h[1][2]=q; do { t++; for (int i=1;i<=4;i++) { x=h[t][1]+dx[i]; y=h[t][2]+dy[i]; if ((x>=0) && (x<m) && (y>=0) && (y<n) && (bz[x][y]!=0)) { w++; h[w][1]=x; h[w][2]=y; bz[x][y]=0; } } }while(t<w); } int main() { int i,j; char s[101],ch; cin>>m>>n; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) bz[i][j]=1; for (int i=1;i<=m;i++) { gets(s); for (int j=1;j<=n;j++) if (s[j]=='0') bz[i][j]=0; } for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) if (bz[i][j]!=0) doit(i,j); cout<<num<<endl; return 0; }

回复

1 条回复,欢迎继续交流。

正在加载回复...