深搜+映射+集合
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='*')
{
cnt=0;
dfs(i,j);//只要找到一个星星,就值得深搜下去
map[cnt]+=cnt;//map刻画的就是一个一个星系,里面存放的是星星的个数
maxv=max(maxv,map[cnt]);//举个例子,map[1]表示以1为最小单位的星系里包含的星星数量
s.insert(cnt);//每多一种个数,就意味着会多一种星系。把他们都丢到set中,set会判重。
}
cout<<s.size()<<' '<<maxv<<endl;
return 0;
}
然后,看一下深搜主体
void