bfs
文章平均质量分 70
Demoo.
来记录不会的题啦
展开
-
P1126 机器人搬重物
机器人移动学会(RMI)现在正尝试用机器人搬运物品。机器人的形状是一个直径1.61.6米的球。在试验阶段,机器人被用于在一个储藏室中搬运货物。储藏室是一个 N \times MN×M 的网格,有些格子为不可移动的障碍。机器人的中心总是在格点上,当然,机器人必须在最短的时间内把物品搬运到指定的地方。机器人接受的指令有:向前移动11步(Creep);向前移动2步(Walk);向前移动33 步(Run);向左转(Left);向右转(Right)。每个指令所需要的时间为11 秒。原创 2022-11-15 16:56:48 · 148 阅读 · 0 评论 -
D. Solve The Maze
思路:我们可以先把所有坏人用墙围起来,如果有好人和坏人挨着说明不行,直接输出NO,把坏人围起来之后我们从终点bfs,看没有被墙隔绝的部分有几个G,如果有全部的G说明可以,否则就没有合适的方案。题意:给你一个n*m的图,‘.’是空的,‘#’是墙,‘B’是 坏人,‘G’是好人,出口在[n][m],我们可以把空的变成墙,问有没有一种可能让所有的华坏人被困在里面,让所有的好人出去。原创 2022-09-24 19:38:42 · 330 阅读 · 0 评论 -
A. Maze codeforce
对第一个x开始bfs,用一个数con记录变成.的数量,每次找到一个队头相邻的x把他变成.之后加入队中(注意判断加入队列里的数,重复加入会爆栈)思路:设图里的‘.’有s个,那么我们要把k个变成X使剩下的联通可以转化为把所有的‘.’变成X之后,再找s-k个由‘.’组成的联通的图。题意:有一个由‘#’和‘.’组成的n*m的图,需要我们把k个‘.’变成X,使得剩下的.还是一个联通块。原创 2022-09-23 16:59:29 · 267 阅读 · 0 评论 -
bfs总结
一般就是求最短距离,思路就是把初始状态加入队列中,写一个while循环,条件是队列不空,每次取队头然后拓展队头。一般需要一个额外的数组来记录每个位置的距离,并需要在刚开始的时候初始化。例题:走迷宫给定一个 n×mn×m 的二维整数数组,用来表示一个迷宫,数组中只包含 00 或 11,其中 00 表示可以走的路,11 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)(n,原创 2022-05-13 11:01:16 · 137 阅读 · 0 评论