洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)
目录
题目背景
题目描述
输入格式
输出格式
输入输出样例
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;
}
总结
- 字符串读入,可用数组记录
- 洪填四角向内泛洪
- 挨个搜
- 判断并++
洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)相关推荐
- 洛谷P1506 拯救oibh总部 题解
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去 ...
- 洛谷P1506 拯救oibh总部【DFS】
题目链接:P1506 拯救oibh总部 程序说明: 深度优先搜索,和P1162填涂颜色差不多(没有区别). 参考题解:P1506 拯救oibh总部 题解 代码如下: #include <iost ...
- 洛谷P1506 拯救oibh总部 —DFS—围墙
拯救oibh总部 - 洛谷 ## 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- ## 题目描述 oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙.用 `* ...
- 洛谷 P1506 拯救oibh总部
P1506 拯救oibh总部 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示 ...
- 洛谷 P1506 拯救oibh总部-dfs染色法
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去 ...
- 洛谷P1506 拯救oibh总部
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进 ...
- 洛谷----P1506 拯救oibh总部
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进 ...
- 洛谷p1506——拯救oibh总部 Java题解 DFS
看了一下java的题解比较少,来发表一下Java AC代码.用的是DFS,染色题型. import java.util.*; public class Main{static Scanner sc=n ...
- [洛谷 P1506] 拯救oibh总部
原题传送门 蒟蒻已经菜的连垃圾DFS都不会了,练一道难题... 直接上代码.. #include<bits/stdc++.h> using namespace std; char ch; ...
最新文章
- 那个大战AlphaGo的柯洁,将免试入读清华大学工商管理专业
- 院士戴琼海:脑科学走向人工智能的重要路径
- HotSpot源码(二):Java与C语言对比
- OSPF次末节区域配置 201
- 连接真机开发安卓(Android)移动app MUI框架 反馈意见、忘记密码、登录、底部选项卡、联系我们、导航等页面代码可拿——混合式开发(六)
- JEECG开源团队招募成员计划
- Socket 编程,一个服务器,多个客户端,互相通信
- Android系统集成app,Android系统集成第三方pre
- 解决比特币双重支付问题
- jvisualVM调优案例
- 群辉安装linux软件下载,群晖系统Synology DSM安装ipkg包管理和套件安装方法
- 计算机网络教程第五版课后答案(第一章)
- 德保罗大学计算机专业,2020年德保罗大学排名TFE Times美国最佳计算机科学硕士专业排名第75...
- 百度竞价账户关键词分类
- 采用JDBC解释java SPI机制和线程上下文类加载器 —————— 开开开山怪
- 大数据集群搭建所遇问题(最重要的是各个组件必须版本匹配)
- 在阿里云或腾讯云配置微信小程序
- 配置Exchange 2010 服务器(一) 配置产品密钥及登录OWA时用户不需要输入域名称
- 遥感计算机分类的基本原理,遥感数字图像计算机解译
- 兰理工Python第一次上机作业源码
热门文章
- 第127届广交会将于六月中下旬在网上举办
- 手把手教你利用js给图片打马赛克
- ERP-非财务人员的财务培训教(二)------如何评价公司/部门经营业绩
- 【万字详解】SQL 优化引擎内幕
- 值得收藏的15个技术类文章合集
- C语言用位移除以10,使用位移除以10?
- python投掷骰子实验报告_用Python来掷个色子玩~
- 伍伦贡大学计算机排名,伍伦贡大学世界排名
- 绥北人民法院:用宜搭打造“线上法庭”,让群众少跑腿
- java标识符区分大小写_java标识符区分大小写怎么区分?Java入门教程