@[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