POJ--2386题C++实现
本题利用深度遍历的穷竭搜索法进行解题,即对每一个元素都对其进行各个方向的深度遍历,穷尽其周围
#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);
}
}
POJ--2386题C++实现的更多相关文章
- POJ 2386 Lake Counting (水题,DFS)
题意:给定一个n*m的矩阵,让你判断有多少个连通块. 析:用DFS搜一下即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,102400 ...
- POJ 2386 Lake Counting DFS水水
http://poj.org/problem?id=2386 题目大意: 有一个大小为N*M的园子,雨后积起了水.八连通的积水被认为是连接在一起的.请求出院子里共有多少水洼? 思路: 水题~直接DFS ...
- POJ 2386
http://poj.org/problem?id=2386 这个题目与那个POJ 1562几乎是差不多的,只不过那个比这个输入要复杂一些 #include <stdio.h> #incl ...
- poj - 2386 Lake Counting && hdoj -1241Oil Deposits (简单dfs)
http://poj.org/problem?id=2386 http://acm.hdu.edu.cn/showproblem.php?pid=1241 求有多少个连通子图.复杂度都是O(n*m). ...
- POJ 水题若干
POJ 3176 Cow Bowling 链接: http://poj.org/problem?id=3176 这道题可以算是dp入门吧.可以用一个二维数组从下向上来搜索从而得到最大值. 优化之后可以 ...
- POJ 水题(刷题)进阶
转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...
- DFS----Lake Counting (poj 2386)
Lake Counting(POJ No.2386) Description Due to recent rains, water has pooled in various places in Fa ...
- 上POJ刷题
Online Judge系统 Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交给定问题的多种程序(如C.C++.Pascal.Java)源代码,系统对源代码进行 ...
- POJ 2386——Lake Counting(DFS)
链接:http://poj.org/problem?id=2386 题解 #include<cstdio> #include<stack> using namespace st ...
- POJ 2386 Lake Counting 题解《挑战程序设计竞赛》
地址 http://poj.org/problem?id=2386 <挑战程序设计竞赛>习题 题目描述Description Due to recent rains, water has ...
随机推荐
- AcWing 841. 字符串哈希 2022/5/25
include include using namespace std; typedef unsigned long long ULL; char str[N]; //存放字符串 int h[N], ...
- mariadb 集群 重启的几种情形
最近项目中遇到过一次mariadb集群中三台节点有两台挂掉的情况.总结了一下mariadb集群可能遇到的几种情况需要重启. 环境说明: mariadb集群ip: 10.0.101.51 10.0.10 ...
- vue element ui table 自动无限滚动组件
<template> <el-table class="tableList" ref="rw_table" hei ...
- MyBatis_05(各种查询功能)
MyBatis各种查询功能: 如果查询出的数据只有 "一条",可以通过: 1-实体类对象接收 2-List集合接收 3-Map集合接收,结果{password=123456, se ...
- 【服务器数据恢复】Linux服务器分区不能挂载的数据恢复案例
服务器数据恢复环境:某品牌PowerEdge系列服务器,磁盘阵列存储型号为该品牌MD3200系列存储,分配lun:linux centos 7操作系统,EXT4文件系统. 服务器故障:服务器在工作中由 ...
- pip安装清华源
一.更换PIP源PIP源在国外,速度慢,可以更换为国内源,以下是国内一些常用的PIP源. 豆瓣(douban) http://pypi.douban.com/simple/ (推荐)清华大学 http ...
- pip修改镜像源
# 单独一次下载软件 pip install markdown -i https://pypi.tuna.tsinghua.edu.cn/simple # 全局修改 pip config set gl ...
- 记一个在线工具网站,程序员必备,json格式化、压缩、转义,加解密 编码解码
简用-在线工具箱-简单易用-工具大全 提供 json格式化,json代码压缩,json校验解析,json数组解析,json转xml,xml转json,json解析,json在线解析,json在线解析及 ...
- 如何查看navicat已连接用户的密码
1:从注册表中查看加密后的密码. 1.1:windows键+r,输入 regedit 1.2:在注册表中找到 \HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\navic ...
- 对LVDS的浅显理解
文章参考百度文库:LVDS标准及介绍 LVDS与VB1的对比:LVDS与VB1详细介绍 1.LVDS简介 LVDS( Low Voltage Differential Signaling)是一种低摆幅 ...