题目背景
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. 阿里AI摘图像识别竞赛WebVision桂冠,万物识别准确率创世界纪录
  2. python3入门书籍-Python学习路上不可或缺的3本书籍【经验分享】
  3. 使用 .NET Core 中的 EventCounters 衡量性能
  4. DBA警世录:备份重于一切
  5. 饭团(0):提升效率的开发工具
  6. eval同时绑定两个值:通过String.Format给超链接中的两个参数赋值
  7. dlibdotnet 人脸相似度源代码_C#开发的人脸左右相似度计算软件源码分析
  8. 了解单片机解密的一些知识
  9. Python中的图像处理(第十一章)Python图像锐化及边缘检测(2)
  10. php底部漂浮广告位代码,网站顶部底部(上下)悬浮(漂浮)广告位代码
  11. 程序员叫啥名字_网友:什么是好程序员?腾讯员工:首先起个“配”自己的网名!...
  12. 深度学习数学基础 熵?
  13. windows7远程桌面
  14. MICCAI 论文投稿须知翻译
  15. 多巴胺所表达的prediction error信号
  16. 一文看懂PPP协议——PPP协议简介
  17. 工序外协与委外加工区别
  18. 分布式锁--(mysql-redis方式)
  19. K12在线教育小班模式带动行业新动向
  20. java中调用matlab程序及相关问题

热门文章

  1. Cesium之3D拉伸显示行政区含GeoJSON数据生成过程GDAL的ogr2ogr
  2. 5G/6G:构建一个更加互联智能的世界
  3. 安卓制裁鸿蒙系统,是安卓换壳?华为高管回应网友质疑,鸿蒙系统不是为应对制裁而生...
  4. 假设计算机系统的页面大小为4K,进程P的页面变换表如下表所示。若P要动问的逻辑地址为十六进制3C20H,那么该逻辑地址经过地址变换后,其物理地址应为()
  5. word打开老是配置进度_Word2013打开时总是出现配置进度的解决办法
  6. 波士顿房价预测----Kaggle项目python项目
  7. PID算法通俗理解,平衡车,倒立摆,适合不理解PID算法的人来看!
  8. 2015ios和android开发,windows phone,微软BUILD2015:Windows 10把iOS/Android都吃了
  9. 通过Liberty存储库下载保存组件,再分发并离线安装之操作步骤
  10. C++ find函数详解