洛谷:P1506 拯救oibh总部(DFS)
题目背景
oibh总部突然被水淹没了!现在需要你的救援……
题目描述
oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去的……现在给出oibh的围墙建设图,问oibh总部没被淹到的重要区域(由"0"表示)有多少。
输入格式
第一行是两个数,x和y(x,y<=500)
第二行及以下是一个由和0组成的xy的图。
输出格式
输出没被水淹没的oibh总部的“0”的数量。
输入(*显示有问题用1代替)
样例输入1
4 5
00000
00100
01010
00100
样例输入2
5 5
11111
10101
11011
10101
11111
输出
样例输出1
1
样例输出2
5
#include<bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define mod 1000000007
#define ll long long
#define ull unsigned long long
#define mem(a) memset(a,0,sizeof(a))
#define cio ios::sync_with_stdio(false);
int next[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
int s[510][510];
int vis[510][510];
int n, m;
int cnt = 0;
int ans = 0;
int flag = 1;
struct node
{int x, y;
};void dfs(int xx, int yy) //深搜连通块
{vis[xx][yy] = 10;ans++;for(int i = 0; i < 4; i++){int tx = xx+next[i][0];int ty = yy+next[i][1];if(tx<1||tx>n||ty<1||ty>m){flag = 0;continue;}if(vis[tx][ty]==0&&s[tx][ty]==0) dfs(tx,ty);}
}int main()
{cin >> n >> m;//读入地图大小for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){char a;cin >> a;//读入地图(由于连续用字符读入)if(a=='0'){s[i][j] = 0;}else{s[i][j] = 1;}}}for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){if(s[i][j]==0&&vis[i][j]==0){ //该点未属于连通块ans = 0;//统计连通块个数flag = 1;//判断边界dfs(i,j); //搜索连通块if(flag) cnt += ans;}}}cout << cnt << endl;return 0;
}
洛谷:P1506 拯救oibh总部(DFS)相关推荐
- 洛谷P1506 拯救oibh总部 —DFS—围墙
拯救oibh总部 - 洛谷 ## 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- ## 题目描述 oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙.用 `* ...
- 洛谷 P1506 拯救oibh总部-dfs染色法
题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去 ...
- 洛谷P1506 拯救oibh总部【DFS】
题目链接:P1506 拯救oibh总部 程序说明: 深度优先搜索,和P1162填涂颜色差不多(没有区别). 参考题解:P1506 拯救oibh总部 题解 代码如下: #include <iost ...
- 洛谷 P1506 拯救oibh总部
P1506 拯救oibh总部 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示 ...
- 洛谷 P1506 拯救oibh总部 题解(洪水填充法的模板)
目录 题目背景 题目描述 输入格式 输出格式 输入输出样例 hack: 说明/提示 总结 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh 被突来的洪水淹没了,还好 o ...
- 洛谷P1506 拯救oibh总部 题解
题目背景 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; ...
最新文章
- Android进阶知识:事件分发与滑动冲突(一)
- php 字符串比较的规则,PHP字符串比较函数strcmp()与strcasecmp()的用法介绍
- Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
- 5 获取窗口位置_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)
- python consul服务发现_consule服务注册和发现 安装 部署
- [转载] Python之Numpy模块中的方法详解
- 俄罗斯大神 lopatkin 毛子 最新 Windows 10 Pro 19041.450 20H1 Release x86-x64 ZH-CN DREY
- step14. ubuntu18.04下载安装scala(转)
- 51单片机实现拼音输入法
- Python招聘职位大体是两个方向
- phpunit 基境
- 练习-Java类和对象之对象组合之求圆锥体表面积
- yum安装软件时报错:Errors during downloading metadata for repository ‘AppStream‘的处理
- 微信开发者工具和gitee实现多人协作
- 摄像头poe供电原理_监控摄像头poe供电维修方法
- 有服务器风扇声音对胎儿有影响吗,怀孕期间长时间噪音对胎儿的影响有哪些
- 【100%通过率】华为OD机试真题 Python 实现【核酸最快检测效率】【2022.11 Q4 新题】
- 获取json中数组的length
- 12306登录验证码识别(Java版)
- springcloud+fastdfs在docker中设置防盗链