1 条题解
-
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
信息
- ID
- 2303
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者