点这里点击打开链接

今天开始迈出了学习广搜的第一步,因为之前感觉搜索很难理解都没有固定的模式,但是觉得现在又到了不得不面对的时刻。一开始想用递归写的,就是想在外围加上1,然后就遍历一下如果不是0的就让它的递归它的四周,看看是否不是0;最后看了一下别人的思路,就换成了队列来写

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;int map[1000][1500];
int n, m;
int dir[4][2] = {{0, 1}, {0, -1}, {-1, 0}, {1, 0}}; //上下左右
queue<int>que;void BFS(int i, int j)
{int x, y;int a, b;que.push(i);que.push(j);while(!que.empty()){x = que.front();que.pop();y = que.front();que.pop();for(int i = 0; i < 4; ++i){a = x + dir[i][0];b = y + dir[i][1];if(a < 0 || b < 0 || a > n + 1 || b >m + 1) //超边界continue;if(map[a][b] == 0)continue;map[a][b] = 0;que.push(a);que.push(b);}}
}int main()
{int ncase;scanf("%d", &ncase);while(ncase--){while(!que.empty())que.pop();scanf("%d%d", &m, &n);for(int i = 0; i <= m + 1; ++i) //用来时周围加上1;{map[0][i] = 1;map[n + 1][i] = 1;}for(int i = 0; i <= n + 1; ++i){map[i][0] = 1;map[i][m + 1] = 1;}for(int i = 1; i <= n; ++i)for(int j = 1; j <=m; ++j)scanf("%d", &map[i][j]);BFS(0, 0);for(int i = 1; i <=n; ++i){for(int j = 1; j <= m; ++j)printf("%d ",map[i][j]);printf("\n");}}return 0;
}

广搜--(搜索的第一道题)图像有用区域相关推荐

  1. 图像有用区域(广搜)

    图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑 ...

  2. 图像有用区域 bfs

    图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑 ...

  3. 【双端队列广搜/搜索+图论】AcWing 2019.拖拉机 USACO 2012 March Contest Silver Division

    [题目描述] 干了一整天的活,农夫约翰完全忘记了他把拖拉机落在田地中央了. 他的奶牛非常调皮,决定对约翰来场恶作剧. 她们在田地的不同地方放了 NNN 捆干草,这样一来,约翰想要开走拖拉机就必须先移除 ...

  4. 【搜索-广搜】 迷宫的最短路径

    题目: 给定一个大小为N*M的迷宫,由通道('.')和墙壁('#')组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置.试求出起点到终点的最小步数.(本题假定迷宫是有 ...

  5. 算法学习 (门徒计划)3-3 深搜(DFS)与广搜(BFS)及经典问题 学习笔记

    算法学习 (门徒计划)3-3 深搜(DFS)与广搜(BFS)及经典问题 学习笔记 前言 深搜与广搜 搜索的核心概念 问题求解树 搜索剪枝和优化 问题求解树的状态 对比深搜与广搜 DFS-深度(deep ...

  6. 南阳oj92--图像有用区域(Bfs)

    图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑 ...

  7. 算法之路——深搜、广搜(简单搜索)

    搜索 通过一定的顺序,枚举每一个数据(经常会通过一些判断条件去掉无意义的数据,即剪枝),找到想要的数据的过程. 深度优先搜索(dfs) 深度优先搜索属于图算法的一种,是一个针对图和树的算法,应为缩写为 ...

  8. 广搜(广度优先搜索BFS)

    广度优先搜索 广度优先搜索算法(又称宽度优先搜索)是最简便的图的搜索算法之一,其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果.换句话说,它并不考虑结果的可能位置 ...

  9. 专题一:简单搜索、深搜、广搜

    挑战程序设计竞赛(课后题难题汇总) 1. AOJ 0033 Ball(贪心) #include<cstdio> #include<algorithm> using namesp ...

最新文章

  1. Everest 0.6 设置ADSL上网
  2. MySQL8与PG10:新版本下的较量谁更胜一筹?
  3. 用函数的思想进行四则运算
  4. 音视频开发(31)---H.264格式分析
  5. java项目介绍_java项目介绍及创建
  6. Chrome浏览器如何完美实现截长屏幕
  7. android 大牛播放组件,大牛播放器安卓版_大牛播放器好不好用
  8. c语言立方体的体积和表面积,立方体表面积C语言
  9. (附源码)PHP疫情上报管理系统 毕业设计 170948
  10. 产品读书《创业维艰:如何完成比难更难的事》
  11. 百度网盘视频加速代码
  12. 为啥一到秋季就鼻塞、流鼻涕、打喷嚏?该如何是好?别总当成感冒
  13. easyExcel下载Excel
  14. 录制计算机网课,电脑怎么录制网络课程?简单专业的录制方法分享
  15. 【机器学习】一些常用的回归模型实战(9种回归模型)
  16. selenium - web 自动化测试
  17. python -- shutil
  18. c/c++ int数组初始化/重置为0
  19. java发展前景选兄弟连_对于Java你了解多少 兄弟连带你了解Java开发工程师现状...
  20. 先定产权还是先定价格,数据交易场景下的市场设计问题,合作博弈中“沙普利值”

热门文章

  1. Vue项目打包成桌面程序exe除了使用electron-vue你还可以这样
  2. ASP.NET中分步骤向导组件Wizard组件的使用
  3. AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑
  4. C#中将字符串内容写入到txt文件中
  5. Jquery中使用select2插件实现ajax实时请求数据
  6. Tkinter的OptionMenu组件
  7. Tkinter的listbox组件
  8. Flutter实战之(Clubhouse App)
  9. 6、ShardingSphere 之 读写分离
  10. 阿里云上创建个人网站