9 條題解
-
-2
#include<bits/stdc++.h> using namespace std; const int N=120; int dx[]={-1,0,1,-1,1,-1,0,1}; int dy[]={-1,-1,-1,0,0,1,1,1}; char g[N][N]; int n,m; bool cnt[N][N]; struct node{int x,y;}; void bfs(int x,int y) { cnt[x][y]=1; queue<node>q; q.push({x,y}); while(q.size()) { node t=q.front(); q.pop(); for(int i=0;i<8;i++) { int a=t.x+dx[i],b=t.y+dy[i]; if(g[a][b]=='.') { continue; } if(a<1||a>n||b<1||b>m) { continue; } if(cnt[a][b]) { continue; } q.push({a,b}); cnt[a][b]=1; } } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>g[i][j]; } } int res=0; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(g[i][j]=='W'&&!cnt[i][j]) { bfs(i,j); res++; } } } cout<<res; return 0; }
資訊
- ID
- 207
- 時間
- 1000ms
- 記憶體
- 256MiB
- 難度
- 3
- 標籤
- 遞交數
- 147
- 已透過
- 27
- 上傳者