题目背景

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总部相关推荐

  1. P1506 拯救oibh总部题解

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

  2. 洛谷 P1506 拯救oibh总部

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

  3. P1506 拯救oibh总部(DFS)

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

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

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

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

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

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

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

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

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

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

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

  9. 洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)

    目录 题目背景 题目描述 输入格式 输出格式 输入输出样例 hack: 说明/提示 总结 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh 被突来的洪水淹没了,还好 o ...

  10. P1506 拯救oibh总部——区域染色问题(DFSBFS双解)

    链接: 原题链接 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 由于博客原因,原题中的' * '在此换为' @ ' 题目描述 oibh被突来的洪水淹没了>.<.还好oibh总 ...

最新文章

  1. +智能”时代,华为如何将AI赋能到各行各业?
  2. Spring AOP根据JdbcTemplate方法名动态设置数据源
  3. 解決 centos -bash: vim: command not found
  4. php 开启命令模式,如何启用PhpStorm中的命令行工具
  5. CMake 常用命令和变量
  6. Python中数组,列表,元组的区别、定义、功能
  7. java applet运行jmx,通过tomcat设置jvm及添加jmx远程访问、gc输出日志
  8. 统计学习(二):统计推断
  9. 第2次作业:微博软件分析
  10. linux 终端翻译,linux下终端使用有道翻译
  11. 林赛登《花花公子》后桃花旺 与神秘男车场约会_0
  12. 从Sklearn Bunch对象到Pandas DataFrame对象的转换
  13. Golang 信息采集
  14. charles 修改responses属性
  15. 麻雀要革命2 第8节:莽撞的麻雀小姐
  16. SPA项目搭建及嵌套路由
  17. 商法——企业法律风险防范
  18. npm ERR! Could not install from “Files\nodejs\node_cache\_npx\10184“ as it does not contain a packag
  19. 这些旅游类短视频账号在快手涨粉的总结
  20. 关于数据分析的一些实例报告

热门文章

  1. 捷径系统-健身房管理系统有哪些实用功能?健身房老板必知!
  2. KMPlayer播放器
  3. 工作满15年劳动法规定有哪些
  4. 学生宿舍管理系统接口文档
  5. 御龙在天---我们的游戏,我们的梦想
  6. 女巫 3D角色 | 国外3D设计师DurontoRakib
  7. 微软,把数据中心部署到了海底…
  8. 凯立德2011夏季版地图2521J/W08--瘦身
  9. lin总线可以控制几个节点_LIN主从节点设计与实现
  10. python卡路里计算器_VB高手进,求一个简单计算器的VB代码