提交时间:2022-08-04 20:50:22

运行 ID: 57280

#include<bits/stdc++.h> using namespace std; int n,ans,x,y,d[4][2]={{1,0},{0,1},{-1,0},{0,-1}},wbl; bool mp[120][210]; string s[110]; void dfs(int x,int y){ for(int i=0;i<4;i++){ int tx=x+d[i][0],ty=y+d[i][1]; if(tx>0&&ty>0&&tx<=n&&y<=s[tx].size()&&mp[tx][ty]){ mp[tx][ty]=0; wbl--; dfs(tx,ty); } } } int main(){ cin>>n; for(int i=1;i<=n;i++)getline(cin,s[i]); for(int i=1;i<=n;i++)for(int j=0;j<s[i].size();j++)if(s[i][j+1]>='a'&&s[i][j+1]<='z')mp[i][j]=1,wbl++; while(wbl){ for(int i=1;i<=n;i++)for(int j=1;j<=s[i].size();j++)if(s[i][j]==1){ x=i,y=j; break; } mp[x][y]=0; dfs(x,y); ans++; } cout<<ans; return 0; }