随笔分类 - BFS
摘要:营救 分析:根据题意,BFS具有求最短路径的特点,就是套用BFS的模板,在if语句判断时不越界,没被标记,是海洋(船只能走海洋),还有就是每走一步步数增加1,从营救船所在的位置开始,到遇难船所在的位置结束。 #include<iostream> #include<cstring> #include<
阅读全文
摘要:面积 分析:根据题意,跟填涂颜色基本一样,就是要在矩形方阵的外面加一圈0,这样就避免了如果第一个就是1不搜索的情况,只要在判断是否越界时扩大一圈边界范围就行,在圈外面的所有0只要被搜索过就标记为1,在圈里面的0搜不到,这样到最后就只有圈里面的0和圈1还没有被标记,只需要开一个计数器,循环一遍标记数组
阅读全文
摘要:广度优先搜索 BFS 概念:广度优先搜索是连通图的一种遍历策略,从一个顶点开始,辐射状的优先遍历其周围较广的区域。 模板:
阅读全文
摘要:P1451 求细胞数量 分析:根据题意,不为0的数连在一起是一个细胞,就是用bfs进行搜索,先是让初始点进入队列,记录下队头的点并向他的上下左右搜索,在没有越界且是细胞(不为0)的情况下,对这个细胞进行标记(后面搜的时候就不搜他了,要不然没完),这一点进行完之后将产生的心点放入队尾,在最后输出的时候
阅读全文
摘要:P1443 马的遍历 分析:根据题意,本题用bfs求解,马每次有八个方位的走向,将步数初始化为-1,这样如果没有马跳到这个地方就直接输出-1,使用队列先进先出的特点,在马每跳到一个方位后放到队尾,等待下一次跳马,其中要开结构体将矩阵图横纵坐标联系起来,每次在指定范围内跳完后更新点的位置并将步数+1。
阅读全文
摘要:P1162 填涂颜色 分析:根据题意,将由1组成的闭合圈内的所有数字改为0。因为是一个正方形矩阵,所以需要设定四个方位,设一个标记数组,先复制一份原数(原来是1就自动标记为1),从4个边缘开始找0,搜索过程中0标记为-1,然后在限定范围内进行搜索,如果遇到已标记的数,证明是1 撞到墙了或者已搜过了,
阅读全文