BFS
龙卡卡卡
这个人很懒,连个include都没写
展开
-
洛谷P3956 优先队列解法
蒟蒻来练BFS啦 题目传送门 分析: 优先队列 这道题要求的最小花费,容易想到BFS,但是不同于一般的BFS求最短路问题。因为普通的最短路问题BFS能求出最短路是因为BFS是依次按照距离从小到达遍历的,这样最先到达终点的路必然就是最短路,而且遍历的时候不用回头(回头就肯定不是最短路了)。这道题中按照相同的思想,只要我们能够按照花费从小到大遍历那就OK了,而利用普通队列是做不到的,所以很容易想到可以采用优先队列来取节点。 决策 题目中说到有无色的格子,将其变为有色花费为2,还有一点就是不能从无色格子走到无色原创 2020-06-12 20:00:30 · 275 阅读 · 0 评论 -
Solve The Maze(codeforces)
题目传送门 分析: 题目要求为让所有B无法到达右下角,所有G都能到达右下角,很容易想到将所有的B周围的’.‘换掉检测条件就ok,检测的时候有个技巧,那就是从终点出发,检查所有能到的位置(单个终点或单个起点的问题就这么搞) 错误原因: 第一次认为将B周围的’.'换掉B就一定出不来了,漏掉了B与G相邻的情况(相邻则G能到B也能到),改了之后发现还是wrong answer,结果是dfs写错了(心好累,我的深广搜就学的这么烂吗),其实这个dfs就是Lake counting问题,参考着写就没问题了。(我还记忆化搜原创 2020-06-08 10:14:57 · 349 阅读 · 0 评论 -
UVA532 Dungeon Master反思
题目:UVA532 Dungeon Master 类型:bfs 队列 主要错误:标记已走过的点不及时 第一次标记的位置如下注释,在判断可达到后标记,标的是当前的位置(我在想啥呢),会出现两个问题: 如果当前位置没有路可走,那么当前位置不会被标记 只标记当前位置会导致位置重复压入,原则上说每个位置只能让它压入一次,所以必须一旦压入就立马标记已走过 while(que.size()) {...原创 2020-04-02 15:31:55 · 134 阅读 · 0 评论