1 solutions
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int n,m; char a[110][110]; int fx[5] = {0,0,1,0,-1}; int fy[5] = {0,1,0,-1,0}; int c;//有几片 int ma;//最大的面积 int s;//记录总面积 int t;//每一片的面积 void dfs(int x,int y){ a[x][y] = '~'; t++; int tx,ty; for(int i = 1;i <= 4;i++){ tx = x + fx[i]; ty = y + fy[i]; if(a[tx][ty] == '*'){ 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]; } } for(int i = 1;i <= n;i++){ for(int j = 1;j <= m;j++){ if(a[i][j] == '*'){ c++; t = 0; dfs(i,j); s = s + t; ma = max(ma,t); } } } cout<<c<<" "<<s<<" "<<ma; return 0; }
- 1
Information
- ID
- 10054
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By