#include<bits/stdc++.h>
using namespace std;
#define MAXN 205
int n,a[MAXN][MAXN],len[MAXN];
bool vis[MAXN][MAXN];
const int fx[4]={-1,0,0,1};
const int fy[4]={0,-1,1,0};
void dfs(int x,int y){
for(int i=0;i<4;i++){
int xx=x+fx[i],yy=y+fy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<len[xx]&&!vis[xx][yy]&&a[xx][yy]){
vis[xx][yy]=1;
dfs(xx,yy);
}
}
}
int main(){
cin>>n;
string str;
getline(cin,str);
for(int i=0;i<n;i++){
getline(cin,str);
len[i]=str.size();
for(int j=0;j<len[i];j++){
if(str[j]==' '||str[j]=='*') a[i][j]=0;
else a[i][j]=1;
}
}
int ans=0;
for(int i=0;i<n;i++){
for(int j=0;j<len[i];j++){
if(a[i][j]&&!vis[i][j]){
dfs(i,j);
ans++;
}
}
}
cout<<ans<<endl;
return 0;
}
第四个点WA了 in:
10
**gdoluuxajfmhtfqpkn
***hpqvju
*j
mh**qgwsdfhpxnitnhxwrbtwibwpad**kvbt*akl***
lvkwopk*mu**qccu*n****ozr*nb**cfw**fs*ueaaz
*gbmcr*zvc*ywxqkhizobnjrb*y************hswscsxdjvvvrosr**zcf*nrvekcw********fc*aaq
mcwmwp*************ba*wlqkslsffucssm*****dhj*he********pffzirybfzhl**
t*ouyjnrfvf*********yfah****h*******dgmtjse*cf****bi**h**zkqqma*****repbc****kej**bc*s******vmpehpekefut**uexmp
****nalnb*if**********m****bpbcautm****fvkkipgnsl********txtakd****zeuasdoltk*xkr*rmczg*fwtpgljrf**gkqw******o*hxugffo*
*******tz**znokf***omhlmvwdjkqzywezkphrj*avnlwc**y***dvpaw*hoe***bvnskt**cnf*jeavluvb
ans:
16
实测正确,但评测机输出18