zoukankan      html  css  js  c++  java
  • 1249:Lake Counting

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1249&teacher=2

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n, m;
     4 char mp[120][120];
     5 int dir[8][2]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}};
     6 int ans;
     7 
     8 void dfs(int x, int y){
     9     for(int i=0; i<8; i++){
    10         int nx=x+dir[i][0], ny=y+dir[i][1];
    11         if(mp[nx][ny]=='W'){
    12             mp[nx][ny]='.';
    13             dfs(nx, ny);
    14         }
    15     }
    16 }
    17 
    18 struct node{
    19     int x, y;
    20 };
    21 node que[14400];
    22 int f, r;
    23 void bfs(int x, int y){
    24     f=r=1;
    25     que[r].x=x; que[r].y=y; mp[x][y]='.';
    26     while(f<=r){
    27         int fx=que[f].x, fy=que[f].y;
    28         for(int i=0; i<8; i++){
    29             int nx=fx+dir[i][0],  ny=fy+dir[i][1];
    30             if(nx>=0 && nx<n && ny>=0 && ny<m && mp[nx][ny]=='W'){
    31                 mp[nx][ny]='.';
    32                 r++;
    33                 que[r].x=nx; que[r].y=ny;
    34             }
    35         }
    36         f++;
    37     }
    38 }
    39 int main()
    40 {
    41     cin>>n>>m;
    42     for(int i=0; i<n; i++)cin>>mp[i];
    43     for(int i=0; i<n; i++)
    44         for(int j=0; j<m; j++){
    45             if(mp[i][j]=='W'){
    46                 ans++;
    47                 //dfs(i, j);
    48                 bfs(i, j);
    49             }
    50         }
    51     cout<<ans;
    52     return 0;
    53  } 

    第47行、48行比好DFS和BFS的用法

  • 相关阅读:
    nginx 添加模块
    zabbix监控nginx status页面
    查看crontab执行记录
    mysql常见问题处理
    iftop简单使用
    TCP的状态及变迁
    CF1174F
    luoguP6326 Shopping
    【THUWC2020】工资分配
    CF1336简要题解
  • 原文地址:https://www.cnblogs.com/tflsnoi/p/13754957.html
Copyright © 2011-2022 走看看