题目背景
oibh总部突然被水淹没了!现在需要你的救援……

题目描述
oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去的……现在给出oibh的围墙建设图,问oibh总部没被淹到的重要区域(由"0"表示)有多少。

输入格式
第一行是两个数,x和y(x,y<=500)

第二行及以下是一个由和0组成的xy的图。

输出格式
输出没被水淹没的oibh总部的“0”的数量。

输入输出样例

样例输入1
4 5
00000
00*00
0*0*0
00*00
样例输入2
5 5
*****
*0*0*
**0**
*0*0*
*****
样例输出1
1样例输出2
5

这道题是一道挺基础的染色题

从(0,0)上下左右搜索染色,遇到障碍或者越界就回溯

最后会发现未被染色的非障碍的点就是被障碍保护的地区,最后遍历全地图寻找此类点数目即可

如果还想练习这类染色题目,可以再刷一下 填涂颜色 来练练手

最后附上带有些许注释的小代码:

#include<iostream>
#include<cstdio>
using namespace std;
char ch;
int x,y,ans,map[550][550],dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};//dx,dy是上下左右四个方向(把0空了过去)
void dfs(int m,int n)
{ if(m<0||n<0||m>x+1||n>y+1||map[m][n])  //如果越界或有障碍就回溯 return;  map[m][n]=2;   for(int i=1;i<=4;i++)  //上下左右搜索 dfs(m+dx[i],n+dy[i]);
}
int main()
{scanf("%d%d",&x,&y);for(int i=1;i<=x;i++)  //习惯处理成数字地图 for(int j=1;j<=y;j++){cin>>ch;  if(ch=='0')  map[i][j]=0; else map[i][j]=1;}dfs(0,0);   //洪水开始泛滥 for(int i=1;i<=x;i++)  //寻找没有被洪水袭击的点即未被染色的点 for(int j=1;j<=y;j++)if(!map[i][j])ans++;   printf("%d",ans);return 0;
}

dfs-涂色题拯救oibh总部相关推荐

  1. P1506 拯救oibh总部(DFS)

    洛谷 P1506 拯救oibh总部 题目 思路(按元素枚举) 代码 题目传送门 题解思路参考大佬 题目 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表 ...

  2. P1506 拯救oibh总部(一道我永远也过不了的题)

    P1506 拯救oibh总部(一道我永远也过不了的题) 题解:(gg染色法 ) 在矩阵外加一圈0,再DFS 其实,挺水的,但是,这不是一道一般的题,我下载了第一个点的数据,本地过了,但是,我竟然爆零了 ...

  3. 洛谷P1506 拯救oibh总部【DFS】

    题目链接:P1506 拯救oibh总部 程序说明: 深度优先搜索,和P1162填涂颜色差不多(没有区别). 参考题解:P1506 拯救oibh总部 题解 代码如下: #include <iost ...

  4. DFS——拯救OIBH总部

    拯救OIBH总部(来源于http://acm.qust.edu.cn/problem.php?id=1101) OIBH被突来的洪水淹没了> .< 还好OIBH总部有在某些重要的地方起一些 ...

  5. 洛谷P1506 拯救oibh总部 —DFS—围墙

    拯救oibh总部 - 洛谷 ## 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- ## 题目描述 oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙.用 `* ...

  6. P1506 拯救oibh总部 (模拟搜索广度优先搜索,BFS深度优先搜索,DFS)

    题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进 ...

  7. 拯救oibh总部题解

    这里附上题目链接:拯救oibh总部. 这是一道十分显然的搜索题!!! 思路解析 题意转换 洪水应该是从地图边界向内渗透,但围墙 * 会将洪水挡住.也就是说洪水只能沿着没有围墙 * 的路径向内渗透. 我 ...

  8. P1506 拯救oibh总部题解

    知识点:dfs 很明显的连通块 em--转载于P1506 拯救oibh总部题解 - qianyangyi 的博客 - 洛谷博客 (luogu.com.cn)​​​​​​ (搞得好像很多人看一样 思路: ...

  9. 洛谷 P1506 拯救oibh总部

    P1506 拯救oibh总部 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示 ...

最新文章

  1. 定时器和promise_web前端面试中 promise 相关
  2. C++AVL树(自平衡二叉查找树)(附完整源码)
  3. Linux命令: grep命令
  4. 将Teams Template升级到dotnet core 3.1
  5. ssl1016 OJ8467-数的划分 鸣人的影分身【各种dp之8 7】
  6. Qt文档阅读笔记-Widgets Tutorial官方解析及实例
  7. 从苹果换回安卓是什么体验?
  8. 一个 Java 方法,最多能定义多少参数?
  9. 基于java电子病历管理系统设计与实现
  10. Delphi 2007 TIDHttp HTTPS 出现Error connecting with SSL
  11. 如何实现Miracast多个设备同时连接投屏
  12. C语言--大小端转换
  13. 数值转换:二进制、八进制、十六进制转换为十进制
  14. [Boost.asio] 深入linux网络编程(四):使用asio搭建商用服务器
  15. yxy小蒟蒻的201117总结
  16. translate函数的用法
  17. 千图网爬图片(BeautifulSoup)
  18. [C++程序设计](入门级题解)小鱼的航程
  19. ArcGIS多条件下进行城市选房分析
  20. 微信小程序--图片转base64

热门文章

  1. 1.安装升级ESXi ——通过U盘USB 闪存驱动器以引导 ESXi 安装或升级
  2. 蓝桥杯算法训练 拦截导弹(动态规划 C语言)
  3. 计算机专业学生就业方向
  4. Linux下弹入弹出光驱(CDROM)命令
  5. HTML+CSS+JS期末大作业:时尚服装购物网站设计——时尚服装购物商城(16页) 关于时尚购物HTML网页设计-----服装
  6. HTML制作可拖动座位表,简单易懂的jquery制作可拖动图层特效代码
  7. C语言递归实现二路归并排序
  8. Bootstrap (Web框架)
  9. 图说Kubernetes
  10. 网络安全专栏——局域网arp断网攻击