1 solutions
-
0
C++ :
#include <bits/stdc++.h> using namespace std; int n,m,c; char s[110][110];//二维字符数组 bool f[110][110]; int fx[] = {1,0,-1,0}; int fy[] = {0,1,0,-1}; //从x,y点开始遍历 void fun(int x,int y){ int i,dx,dy; //尝试四个方向 for(i = 0;i < 4;i++){ dx = x + fx[i]; dy = y + fy[i]; if(dx >= 1 && dx <= n && dy >= 1 && dy <= m && f[dx][dy] == false && s[dx][dy] == '#'){ f[dx][dy] = true;//标记为走过 fun(dx,dy); } } } int main(){ int i,j; cin>>n>>m; for(i = 1;i <= n;i++){ for(j = 1;j <= m;j++){ cin>>s[i][j]; } } //遍历 for(i = 1;i <= n;i++){ for(j = 1;j <= m;j++){ //没走过,且是草丛 if(f[i][j] == false && s[i][j] == '#'){ c++; f[i][j] = true; fun(i,j); } } } cout<<c<<endl; return 0; }
- 1
Information
- ID
- 10692
- Time
- 1000ms
- Memory
- 64MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By