acwing 1097 池塘计数

简介: acwing 1097 池塘计数

活动 - AcWing

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
 
using namespace std ;
const int N = 1010 ;
int d[8][2] = {{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}} ;
char g[N][N] ;
int n , m ;
int v[N][N] ;
struct edge{
  int x , y ;
  edge(int xx, int yy){
    x = xx , y = yy ;
  }
};
queue<edge> q ;
void bfs(int a , int b ){
  q.push(edge(a,b)) ;
  v[a][b] = 1 ;
  while(!q.empty()){
    edge now = q.front() ;
    q.pop() ;
    int x = now.x, y = now.y;
     
    for(int i = 0 ; i < 8 ; i ++){
      int tx = x + d[i][0] , ty = y + d[i][1] ;
      if(tx >= 0 && tx < n && ty >= 0 && ty < m ){
        if(g[tx][ty] == 'W'&&!v[tx][ty]){
          q.push(edge(tx,ty)) ;
          v[tx][ty] = 1 ;
        }
      }
      
    }
  }
}
int main(){
  cin >> n >> m ;
  for(int i = 0 ; i < n ;i ++) cin >> g[i] ;
  int ans = 0 ;
  for(int i = 0 ; i < n ;i ++){
    for(int j= 0 ; j < m ; j ++){
      if(!v[i][j] && g[i][j] == 'W'){
        ans ++ ; 
        bfs(i,j) ;
      }
    }
  }
  cout << ans << endl ;
}
目录
相关文章
|
12天前
acwing 789 数的范围
acwing 789 数的范围
16 4
|
10天前
lanqiao OJ 246 矩阵计数
lanqiao OJ 246 矩阵计数
9 0
|
5月前
|
JavaScript
【leetcode】204. 计数质数 暴力 & 埃拉托斯特尼法
【leetcode】204. 计数质数 暴力 & 埃拉托斯特尼法
37 0
|
5月前
|
JavaScript
【leetcode】204--计数质数-暴力-&-埃拉托斯特尼法
【leetcode】204--计数质数-暴力-&-埃拉托斯特尼法
25 0
|
5月前
|
算法
算法题解-计数质数
算法题解-计数质数
【AcWing每日一题】3400. 统计次数
【AcWing每日一题】3400. 统计次数
56 0
|
机器学习/深度学习 移动开发 算法
1316:【例4.6】数的计数(Noip2001)
1316:【例4.6】数的计数(Noip2001)
300 0
|
API Python
力扣刷题记录——507.完美数、509. 斐波那契数、520. 检测大写字母
力扣刷题记录——507.完美数、509. 斐波那契数、520. 检测大写字母
140 0
力扣刷题记录——507.完美数、509. 斐波那契数、520. 检测大写字母