BFS
CuriousLiu
这个作者很勤奋,什么都没留下...
展开
-
BFS 迷宫问题合集
针对迷宫问题,用到的技巧是不断出入队列,把队头元素弹出队列后,将转移得到的状态再放入队中,这样做到的是BFS的广度优先搜索,等于每次找到的都是离原点最近的状态,所以肯定最终得到的是最短路径。在开始阶段有一部分初始化,struct node{ int x,int y; node(int a,int b) { x = a;y = b; }}...原创 2018-04-21 00:42:30 · 431 阅读 · 0 评论 -
POJ 3278.Catch That Cow(附有Runtime Error解决办法)
这道题用来做bfs入门很合适,与之前做过的走迷宫相比,这个可以说是一维的 一开始想要使用优先队列秀一把,结果把自己演进去了。。 这个题有一个RE点: if(temp.x-1 >=0&&temp.x-1<100005&&vis[temp.x-1]==0) 这个条件必须把temp.x-1 >=0 写在前边,否则有可能造成数组越界 题目链接...原创 2018-07-25 20:05:17 · 498 阅读 · 1 评论 -
百练 4116.拯救行动
这道题相比于平常的bfs走迷宫,多了一个,原来因为要维护步数优先的队列,所以先出队的元素永远处在步数+1的位置 但这个题由于杀死守卫需要多花一个步数,所以平常的队列不能做到按照这个,所以要使用到优先队列的技巧 优先队列结构体的使用方法: struct node { int x; int y; int step; node(int a,int b,int c) { x = ...原创 2018-07-27 00:21:16 · 587 阅读 · 0 评论 -
百练 鸣人和佐助(优先队列+BFS)
这也是一个迷宫题,通过这个题继续复习优先队列的使用 这个题的优先队列条件是在步数相同的情况下,优先走查克拉消耗小的 题目链接 #include <iostream> #include <queue> #include <cstring> using namespace std; int m,n,t; char mp[205][205]; int vis...原创 2018-08-01 01:12:20 · 700 阅读 · 0 评论