原题链接https://vjudge.net/contest/331118#problem/A

题目:

现在有一个M*N的方阵,每个格子里面是.或者W,点代表水,然后如果在这个点的周围,即8个方向内还有w,那么可以连成一片,即这两个w看作为1个

输入:M N, 还有方阵

输出:有几个水池

样例输入

10 12
W       .       .      .       .       .      .      .      .       W      W      .
.        W     W    W     .       .      .      .      .       W      W     W   
.        .        .      .      W     W    .       .      .       W      W      .
.        .        .      .       .       .      .       .      .       W      W      .
.        .        .      .       .       .      .       .      .       W       .       .
.        .       W     .       .       .      .       .      .       W       .       .
.       W      .      W      .       .     .        .      .      W       W      .
W     .        W    .      W       .     .       .       .      .         W       .
.       W      .     W      .        .     .        .       .      .        W       .
.       .        W    .        .        .     .        .      .      .         W      .

注释:这里相邻两个字符之间的空格是为了方便看,实际输入的时候是没有的

样例输出

3

代码:

#include<stdio.h>
#include<iostream>
using namespace std;
int sum=0;
char G[105][105];
bool vis[105][105];
int n,m,d[8]= {-1,-1,-1,0, 0, 1,1,1};
int     z[8]= {-1, 0, 1,-1,1,-1,0,1};  //8个方向
void dfs(int q,int w) {
 if(G[q][w]=='W'&&!vis[q][w]&&q<=n&&w<=m && q>0 && w>0) {
  vis[q][w]=true;
  for(int i=0; i<8; i++) {
   if(G[q+d[i]][w+z[i]]=='W'   &&    !vis[q+d[i]][w+z[i]]     &&(q+d[i])<=n&&(w+z[i])<=m &&(q+d[i])>0&&(w+z[i])>0 ) {
    dfs(q+d[i],w+z[i]);
   }
  }
 }
}
int main() {
 cin >> n >> m;
 for(int i=1; i<=n; i++) {
  scanf("%s",G[i]+1);
 }
 for(int q=1; q<=n; q++) {
  for(int w=1; w<=m; w++) {
   if(G[q][w]=='W' && !vis[q][w]) sum++;
   dfs(q,w);
  }
 }
 cout<<sum;
 return 0;
}

vjudge Lake Counting 搜索 水池 8方向的更多相关文章

  1. POJ 2386 Lake Counting 搜索题解

    简单的深度搜索就能够了,看见有人说什么使用并查集,那简直是大算法小用了. 由于能够深搜而不用回溯.故此效率就是O(N*M)了. 技巧就是添加一个标志P,每次搜索到池塘,即有W字母,那么就觉得搜索到一个 ...

  2. POJ 2386 Lake Counting 八方向棋盘搜索

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 53301   Accepted: 26062 D ...

  3. POJ 2386 Lake Counting(搜索联通块)

    Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 48370 Accepted: 23775 Descr ...

  4. 【POJ - 2386】Lake Counting (dfs+染色)

    -->Lake Counting 直接上中文了 Descriptions: 由于近日阴雨连天,约翰的农场中中积水汇聚成一个个不同的池塘,农场可以用 N x M (1 <= N <= ...

  5. Poj2386 Lake Counting (DFS)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 49414   Accepted: 24273 D ...

  6. poj 2386:Lake Counting(简单DFS深搜)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18201   Accepted: 9192 De ...

  7. POJ 2386 Lake Counting(深搜)

    Lake Counting Time Limit: 1000MS     Memory Limit: 65536K Total Submissions: 17917     Accepted: 906 ...

  8. POJ:2386 Lake Counting(dfs)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 40370   Accepted: 20015 D ...

  9. Openjudge1388 Lake Counting【DFS/Flood Fill】

    http://blog.csdn.net/c20182030/article/details/52327948 1388:Lake Counting 总时间限制:   1000ms   内存限制:  ...

随机推荐

  1. HTML连载68-形变中心点、形变中心轴

    一. 形变中心点介绍 <style> ul li { width: 100px; height: 100px; list-style: none; float:left; margin:0 ...

  2. 「Spark」Spark SQL Thrift Server运行方式

    Spark SQL可以使用JDBC/ODBC或命令行接口充当分布式查询引擎.这种模式,用户或者应用程序可以直接与Spark SQL交互,以运行SQL查询,无需编写任何代码. Spark SQL提供两种 ...

  3. echarts配置环形饼图的参数,以及牵引线显示百分比,中间数据

    最近项目有多处是用echarts的,有环形图,折线图,饼图,总结了一下. 本次主要讲环形图,折线图在下期. 这个是最终的效果图.下面附上代码 //三种占比 var myChartType = echa ...

  4. Python+PyQT5的子线程更新UI界面的实例《新手必学》

    今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧子线程里是不能更新UI界面的,在移动端方面.Android的U ...

  5. 初学Python,需要装什么软件?

    学习Python需要安装什么软件呢?也许你是一位编程小白,还不知道如何如何安装Python软件和开发环境.那么今天我们就来学一下关于Python软件.开发环境的相关知识,希望对你有用. 学Python ...

  6. Typora自动编号设置

    找到C:\Users\用户名\AppData\Roaming\Typora\themes\路径下的base.user.css,用文本编辑器打开(若不存在,则自己创建一个),将一下内容复制进去,然后重启 ...

  7. php操作mysql(数据库常规操作)

    php操作数据库八步走 <?php .建立连接 $connection '); .判断连接是否成功 if (mysqli_connect_error() != null) { die(mysql ...

  8. 解决Python3.7安装pygame报错You are using pip version 10.0.1, however version 19.1 is available.

    背景: 学习python开发中,需要用到pygame插件,因此按照参考书<Python编程实践,从入门到实践>指引安装Pygame包. 但是利用pip 命令安装 .whl 文件时,报错(如 ...

  9. 鼠标经过INPUT时自动获取焦点

    鼠标经过INPUT时自动获取焦点 <input type="text" name="addr" onMouseOver="this.focus( ...

  10. redis深入学习

    Redis持久化 官方文档: https://redis.io/topics/persistence 1.RDB和AOF优缺点 RDB: 可以在指定的时间间隔内生成数据集的时间点快照,把当前内存里的状 ...