无输出,玄关求调

P1451 求细胞数量

@[lucy2012](/user/1252442) `fill` 的结束条件是啥?一直递归下去肯定爆栈然后 RE。
by Walrus @ 2024-04-13 14:24:14


@[lucy2012](/user/1252442) 死循环了,你的fill里面如果有相邻的1-9就会死循环
by qiuzijin2026 @ 2024-04-13 14:25:09


@[lucy2012](/user/1252442) ``` #include<bits/stdc++.h> using namespace std; int n,m,sum=0,num[110][110]; char f[110][110]; int dx[]={1,-1,0,0},dy[]={0,0,1,-1}; void fill(int x,int y){ num[x][y]=1; for(int i=0;i<4;i++){ int xx=x+dx[i]; int yy=y+dy[i]; if(xx>0&&xx<=n&&yy>0&&yy<=m&&num[xx][yy]==0&&f[xx][yy]>='1'&&f[xx][yy]<='9') fill(xx,yy); } } 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]>='1'&&f[i][j]<='9'&&num[i][j]==0){ sum++; fill(i,j); } } } cout<<sum; return 0; } ```
by qiuzijin2026 @ 2024-04-13 14:29:40


@[lucy2012](/user/1252442) 你的num标记在fill里面没有判,f数组在不在1-9也没判
by qiuzijin2026 @ 2024-04-13 14:31:07


@[qiuzijin2026](/user/753211) 谢啦
by lucy2012 @ 2024-04-13 14:38:40


@[lucy2012](/user/1252442) 不用谢
by qiuzijin2026 @ 2024-04-13 14:42:30


|