随笔分类 -  广度优先搜索

摘要:这道题的目的是要求出每个点的单源最短路数量。 那么对于每个点,我们需要知道其距离起点的距离和当前搜到的最短路的条数,分别用数组 dis [ i ] 和 f [ i ] 来表示。 从而,我们选择用广搜来进行实现(一是边权为恒为1,二是保证第一次搜到的 dis [ i ] 即为最短的) 对于每一个新搜到 阅读全文
posted @ 2020-09-06 21:52 handsome_zyc 阅读(187) 评论(1) 推荐(0) 编辑
摘要:这道题具有很大的思维价值,所以我做了好多遍。 这道题与其他最短路问题最不一样的地方就在于一个条件:路径上的所有点的出边所指向的点都直接或间接与终点连通。 那我们思考如何才能得出符合这个条件的点: 考虑这三个点集:1.所有的点 2.所有与终点连通的点 3.所有该点的出边所指向的点都与终点连通的点 不难 阅读全文
posted @ 2020-09-06 15:23 handsome_zyc 阅读(212) 评论(0) 推荐(0) 编辑
摘要:每日一题 day70 打卡 Analysis 这道题的突破口是每个山峰或山谷上的高度是相同的,根据这点我们就可以用广搜来解决。 这样我们基本的思路就是广搜从每个点开始,搜它能走到的高度相同的格子,且将它标记为走过,这样我们就可以在时间范围内遍历整个图了。 但是如何判断当前遍历的连通块是否是山峰还是山 阅读全文
posted @ 2020-02-29 10:00 handsome_zyc 阅读(281) 评论(0) 推荐(0) 编辑
摘要:每日一题 day69 打卡 Analysis 这道题题目有点难懂,但看懂了之后感觉并不难。 大体思路是先预处理出键盘中每一位的上下左右第一个能到的点的坐标,然后就可以广搜了。 然而,这道题有很多坑点: 1.最后结尾还要加一个' * ' 2.还需要加一个剪枝,不然过不了 剪枝:开一个book数组记录在 阅读全文
posted @ 2020-02-27 14:52 handsome_zyc 阅读(194) 评论(0) 推荐(0) 编辑
摘要:每日一题 day67 打卡 Analysis 这道题很容易想到广搜,但是有一个难题需要我们解决,就是如何储存魔板最方便操作。 我选择的方法是直接将魔板变成一个8位数, 注意: 如果魔板是这样 1 2 3 4 5 6 7 8 存起来就是12345678,而不是顺时针的顺序。 那么既然这个问题解决了,每 阅读全文
posted @ 2020-02-25 21:50 handsome_zyc 阅读(271) 评论(0) 推荐(0) 编辑
摘要:每日一题 day66 打卡 我很震惊一本通居然还有这么善良的题目。 Analysis 只需要一个广搜的模板就好了,值得注意的是做每个子任务之前记得清空队列。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include< 阅读全文
posted @ 2020-02-25 21:42 handsome_zyc 阅读(148) 评论(0) 推荐(0) 编辑
摘要:每日一题 day19 打卡 Analysis 广搜+map判重 用find寻找字串,再用replace替换字串 这里的map相当于正常广搜的一个book的作用 请各位大佬斧正(反正我不认识斧正是什么意思) 阅读全文
posted @ 2019-09-23 22:49 handsome_zyc 阅读(183) 评论(0) 推荐(0) 编辑
摘要:Analysis 就是一个裸的广搜,每次从是1的点开始找就好啦~~~ 阅读全文
posted @ 2019-07-30 14:22 handsome_zyc 阅读(285) 评论(0) 推荐(0) 编辑
摘要:一道经典的BFS 用四个for搜索四位就行了,只要能推出怎么只变4位中的一位就很水了 阅读全文
posted @ 2019-07-24 13:34 handsome_zyc 阅读(251) 评论(0) 推荐(0) 编辑
摘要:我个人感觉就是一道bfs的变形,还是对bfs掌握不好的人有一定难度。 本题思路: 大体上用bfs搜,用map来去重,在这里只需要一个队列,因为需要较少步数达到的状态一定在步数较多的状态之前入队列。 阅读全文
posted @ 2019-07-24 13:18 handsome_zyc 阅读(286) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示