P1506 拯救oibh总部
题目背景
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说明/提示
对于 100\%100% 的数据,1 \le x,y \le 5001≤x,y≤500。
我的思路是将数组全标记为‘0’,从(1,1)开始将每个数据输入,然后从边界(0,0)开始搜,搜到‘0’就变为‘*’,这样搜的全是外围的,但后再遍历一遍,找到‘0’,有几个答案就是几,但是测试数据有一组超时了,从广搜变为了深搜
超时代码
#include <bits/stdc++.h>
using namespace std;
char s[505][505];int n,m;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
void bfs(){queue<pair<int ,int>>q;q.push(make_pair(0,0));while(!q.empty()){auto t=q.front();q.pop();s[t.first][t.second]='*';for(int i=0;i<4;i++){if((t.first+dx[i])>=0&&(t.first+dx[i])<=n+1&&(t.second+dy[i])>=0&&(t.second+dy[i])<=m+1&&s[t.first+dx[i]][t.second+dy[i]]=='0'){q.push(make_pair(t.first+dx[i],t.second+dy[i]));}}}
}
int main(){int ans=0;memset(s,'0',sizeof(s));scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>s[i][j];if(s[i][j]==0){s[i][j]='0';}}}bfs();for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(s[i][j]=='0'){ans++;}}}printf("%d",ans);}
ac代码
#include <bits/stdc++.h>
using namespace std;
char s[505][505];int n,m;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
void dfs(int p,int q){if(p<0||p>n+1||q<0||q>m+1||s[p][q]=='*') return ;//s[p][q]='*';for(int i=0;i<4;i++)dfs(p+dx[i],q+dy[i]);
}
int main(){int ans=0;memset(s,'0',sizeof(s));scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>s[i][j];if(s[i][j]==0){s[i][j]='0';}}}dfs(0,0);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(s[i][j]=='0'){ans++;}}}printf("%d",ans);}
P1506 拯救oibh总部相关推荐
- P1506 拯救oibh总部题解
知识点:dfs 很明显的连通块 em--转载于P1506 拯救oibh总部题解 - qianyangyi 的博客 - 洛谷博客 (luogu.com.cn) (搞得好像很多人看一样 思路: ...
- 洛谷 P1506 拯救oibh总部
P1506 拯救oibh总部 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示 ...
- P1506 拯救oibh总部(DFS)
洛谷 P1506 拯救oibh总部 题目 思路(按元素枚举) 代码 题目传送门 题解思路参考大佬 题目 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表 ...
- P1506 拯救oibh总部(一道我永远也过不了的题)
P1506 拯救oibh总部(一道我永远也过不了的题) 题解:(gg染色法 ) 在矩阵外加一圈0,再DFS 其实,挺水的,但是,这不是一道一般的题,我下载了第一个点的数据,本地过了,但是,我竟然爆零了 ...
- 洛谷P1506 拯救oibh总部【DFS】
题目链接:P1506 拯救oibh总部 程序说明: 深度优先搜索,和P1162填涂颜色差不多(没有区别). 参考题解:P1506 拯救oibh总部 题解 代码如下: #include <iost ...
- P1506 拯救oibh总部 (模拟搜索广度优先搜索,BFS深度优先搜索,DFS)
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进 ...
- 洛谷P1506 拯救oibh总部 —DFS—围墙
拯救oibh总部 - 洛谷 ## 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- ## 题目描述 oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙.用 `* ...
- 洛谷 P1506 拯救oibh总部-dfs染色法
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去 ...
- 洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)
目录 题目背景 题目描述 输入格式 输出格式 输入输出样例 hack: 说明/提示 总结 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh 被突来的洪水淹没了,还好 o ...
- P1506 拯救oibh总部——区域染色问题(DFSBFS双解)
链接: 原题链接 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 由于博客原因,原题中的' * '在此换为' @ ' 题目描述 oibh被突来的洪水淹没了>.<.还好oibh总 ...
最新文章
- +智能”时代,华为如何将AI赋能到各行各业?
- Spring AOP根据JdbcTemplate方法名动态设置数据源
- 解決 centos -bash: vim: command not found
- php 开启命令模式,如何启用PhpStorm中的命令行工具
- CMake 常用命令和变量
- Python中数组,列表,元组的区别、定义、功能
- java applet运行jmx,通过tomcat设置jvm及添加jmx远程访问、gc输出日志
- 统计学习(二):统计推断
- 第2次作业:微博软件分析
- linux 终端翻译,linux下终端使用有道翻译
- 林赛登《花花公子》后桃花旺 与神秘男车场约会_0
- 从Sklearn Bunch对象到Pandas DataFrame对象的转换
- Golang 信息采集
- charles 修改responses属性
- 麻雀要革命2 第8节:莽撞的麻雀小姐
- SPA项目搭建及嵌套路由
- 商法——企业法律风险防范
- npm ERR! Could not install from “Files\nodejs\node_cache\_npx\10184“ as it does not contain a packag
- 这些旅游类短视频账号在快手涨粉的总结
- 关于数据分析的一些实例报告