目录

题目背景

题目描述

输入格式

输出格式

输入输出样例

hack:

说明/提示

总结

题目背景

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

题目描述

oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙。用 * 号表示,而一个四面被围墙围住的区域洪水是进不去的。

oibh 总部内部也有许多重要区域,每个重要区域在图中用一个 0 表示。

现在给出 oibh 的围墙建设图,问有多少个没被洪水淹到的重要区域。

输入格式

第一行为两个正整数 x,y。

接下来 x 行,每行 y 个整数,由 * 和 0 组成,表示 oibh 总部的建设图。

输出格式

输出没被水淹没的 oibh 总部的 0 的数量。

输入输出样例

输入 #1复制

4 5
00000
00*00
0*0*0
00*00

输出 #1

1

输入 #2

5 5
*****
*0*0*
**0**
*0*0*
*****

输出 #2

5

hack:

输入

5 5
0*000
*0000
00000
00000
00000

输出

0

说明/提示

对于 100% 的数据,1≤x,y≤500。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[509][509],ans=0,dx[]={0,1,0,-1},dy[]={1,0,-1,0};
bool vis[509][509];
void dfs(int x,int y){a[x][y]=1;for(int i=0;i<4;i++){int nx=x+dx[i],ny=y+dy[i];if(nx<=n&&nx>=1&&ny<=m&&ny>=1&&!a[nx][ny]){dfs(nx,ny);}}
}
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;for(int i=1;i<=n;i++){string s;cin>>s;for(int j=1;j<=m;j++){if(s[j-1]=='0') a[i][j]=0;else if(s[j-1]=='*') a[i][j]=1;}}for(int i=1;i<=n;i++){if(a[i][1]==0) dfs(i,1);if(a[i][m]==0) dfs(i,m);}for(int i=1;i<=m;i++){if(a[1][i]==0) dfs(1,i);if(a[n][i]==0) dfs(n,i);}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(a[i][j]==0) ans++;cout<<ans;return 0;
}

 总结

  1. 字符串读入,可用数组记录
  2. 洪填四角向内泛洪
  3. 挨个搜
  4. 判断并++

洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)相关推荐

  1. 洛谷P1506 拯救oibh总部 题解

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

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

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

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

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

  4. 洛谷 P1506 拯救oibh总部

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

  5. 洛谷 P1506 拯救oibh总部-dfs染色法

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

  6. 洛谷P1506 拯救oibh总部

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

  7. 洛谷----P1506 拯救oibh总部

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

  8. 洛谷p1506——拯救oibh总部 Java题解 DFS

    看了一下java的题解比较少,来发表一下Java AC代码.用的是DFS,染色题型. import java.util.*; public class Main{static Scanner sc=n ...

  9. [洛谷 P1506] 拯救oibh总部

    原题传送门 蒟蒻已经菜的连垃圾DFS都不会了,练一道难题... 直接上代码.. #include<bits/stdc++.h> using namespace std; char ch; ...

最新文章

  1. 那个大战AlphaGo的柯洁,将免试入读清华大学工商管理专业
  2. 院士戴琼海:脑科学走向人工智能的重要路径
  3. HotSpot源码(二):Java与C语言对比
  4. OSPF次末节区域配置 201
  5. 连接真机开发安卓(Android)移动app MUI框架 反馈意见、忘记密码、登录、底部选项卡、联系我们、导航等页面代码可拿——混合式开发(六)
  6. JEECG开源团队招募成员计划
  7. Socket 编程,一个服务器,多个客户端,互相通信
  8. Android系统集成app,Android系统集成第三方pre
  9. 解决比特币双重支付问题
  10. jvisualVM调优案例
  11. 群辉安装linux软件下载,群晖系统Synology DSM安装ipkg包管理和套件安装方法
  12. 计算机网络教程第五版课后答案(第一章)
  13. 德保罗大学计算机专业,2020年德保罗大学排名TFE Times美国最佳计算机科学硕士专业排名第75...
  14. 百度竞价账户关键词分类
  15. 采用JDBC解释java SPI机制和线程上下文类加载器 —————— 开开开山怪
  16. 大数据集群搭建所遇问题(最重要的是各个组件必须版本匹配)
  17. 在阿里云或腾讯云配置微信小程序
  18. 配置Exchange 2010 服务器(一) 配置产品密钥及登录OWA时用户不需要输入域名称
  19. 遥感计算机分类的基本原理,遥感数字图像计算机解译
  20. 兰理工Python第一次上机作业源码

热门文章

  1. 第127届广交会将于六月中下旬在网上举办
  2. 手把手教你利用js给图片打马赛克
  3. ERP-非财务人员的财务培训教(二)------如何评价公司/部门经营业绩
  4. 【万字详解】SQL 优化引擎内幕
  5. 值得收藏的15个技术类文章合集
  6. C语言用位移除以10,使用位移除以10?
  7. python投掷骰子实验报告_用Python来掷个色子玩~
  8. 伍伦贡大学计算机排名,伍伦贡大学世界排名
  9. 绥北人民法院:用宜搭打造“线上法庭”,让群众少跑腿
  10. java标识符区分大小写_java标识符区分大小写怎么区分?Java入门教程