#include<bits/stdc++.h> using namespace std; int n,m,fx[4]={0,1,0,-1},fy[4]={1,0,-1,0},k,x; char a[1000][1000]; void dfs(int x,int y){ a[x][y]='~'; k++; for(int i=0;i<=3;i++){ int tx=x+fx[i]; int ty=y+fy[i]; if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&a[tx][ty]=='*'){ // a[tx][ty]='~'; // cout<<k<<endl; dfs(tx,ty); } } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } int s=k,v=k; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j]=='*'){ x++; k=0; dfs(i,j); if(k>s)s=k; v+=k; } } } //cout<<endl; //for(int i=1;i<=n;i++){ // for(int j=1;j<=m;j++){ // cout<<a[i][j]<<setw(3); // } // cout<<endl; //} cout<<x<<" "<<v<<" "<<s; return 0; } //中文翻译: //1.定义n,m char型的字符数组 a[1000][1000] int fx(0,1,0,-1),int fy(1,0,-1,0) //2.输入n,m,a[1000][1000] //3. dfs(1,1,0) //4. void dfs(int x,int y,int k){ // 4.1循环4次{ // 4.1.1 int tx=x+fx; // 4.1.2 int ty=y+ty; // 4.1.3 if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&a[tx][ty]=='*'){ // dfs(tx,ty,k+1) // } //} /************************************************************** Problem: 2112 User: chenjingqi Language: C++ Result: Accepted Time:53 ms Memory:3048 kb ****************************************************************/