1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int n,m; char s[1001][1001]; int a[1001][1001]; int ans; int tx,ty; bool vis[1001][1001]; const int dx[9]={0,0,-1,0,1,-1,1,-1,1}; const int dy[9]={0,-1,0,1,0,1,1,-1,-1}; void dfs(int x,int y){ vis[x][y]=1; for(int i=1;i<=8;i++){ tx=x+dx[i],ty=y+dy[i]; if(tx>0&&tx<=n&&ty>0&&ty<=m&&a[tx][ty]==1&&vis[tx][ty]==0)dfs(tx,ty); } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>s[i][j]; if(s[i][j]=='W') a[i][j]=1; else a[i][j]=0; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(!vis[i][j]&&a[i][j]){ dfs(i,j); ans++; } } } cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 663
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 84
- 已通过
- 63
- 上传者