本题利用深度遍历的穷竭搜索法进行解题,即对每一个元素都对其进行各个方向的深度遍历,穷尽其周围

#include<iostream>
#include<cstdio>
using namespace std;
char a[10000][10000]={{'.'}};//全局变量的使用可以避免函数引用二维数组的复杂
int solve(int n,int m);
void dfs(int i,int j,int n,int m);
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        getchar();
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    }
    int sum=0;
    sum=solve(n,m);
    cout<<sum<<endl;
    return 0;
}
int solve(int n,int m)
{
    int counter=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
          if(a[i][j]=='W')
          {
            dfs(i,j,n,m);
            counter++;
          }
    return counter;
}
void dfs(int i,int j,int n,int m)
{
    a[i][j]='.';//在访问完变量后对其进行改变,使的该元素不会影响以计数
    for(int dx=-1;dx<=1;dx++)
        for(int dy=-1;dy<=1;dy++)
    {
        int nx=i+dx,ny=j+dy;
        if(nx>=0 && nx<=n && ny<=m && ny>=0 && a[nx][ny]=='W')
            dfs(nx,ny,n,m);
    }
}

最新文章

  1. 关于HTML5你必须知道的28个新特性,新技巧以及新技术
  2. R-处理数据对象的实用函数
  3. 关于printf函数输出先后顺序的讲解!!
  4. html5 filereader读取流注意事项
  5. [BS-16] 尽量将View的Opaque属性设置为YES(默认就是YES)
  6. nginx完美支持tp框架
  7. HDOJ/HDU 1200 To and Fro(加密解密字符串)
  8. python基础之 list和 tuple(元组)
  9. Ubuntu14.04(64位)安装ATI_Radeon_R7_M265显卡驱动
  10. 445port入侵详细解释
  11. Myeclipse详细使用教程
  12. FastDFS简介和架构图(内容来自于阅读fastdfs官方文档的总结)
  13. Spring Boot + Netty 中 @Autowired, @Value 为空解决
  14. SpringBoot系列: 使用 consul 作为服务注册组件
  15. Freemarker中的日期输出
  16. 如何修改DEDECMS文章标题长度
  17. Native Code
  18. 实验二:klee处理未建模函数和处理error的方式
  19. jdk与eclipse不匹配的各种问题。。。
  20. reading list

热门文章

  1. 22_webpack_优化
  2. 调度器30—调度相关结构体—p-&gt;flags
  3. debian11下载软件包及依赖(本地使用)
  4. window向linux传递文件
  5. error: the option `Z` is only accepted on the nightly compiler
  6. J V M大概理解
  7. Kubernetes学习笔记(一)
  8. 面试官:MySQL一千万数据,怎么快速查询?
  9. Vulnhub 靶场 DIGITALWORLD.LOCAL: SNAKEOIL
  10. R7-3 十六进制字符串转换成十进制非负整数