BFS 算法在 AtCoder 比赛中照旧会考的,因为不常训练导致没想到,不仅错误 TLE 了很多,还影响了心态,3 发罚时后才 AC。
思路
起首,我们把全部位置和出口的隔断算出来(用 BFS),记为 d x , y d_{x,y} dx,y,顺便求出离它近来的出口坐标,记为 ( X x , y , Y x , y ) (X_{x,y},Y_{x,y}) (Xx,y,Yx,y)。我们发现这个必要在队列里记下这个点的近来出口位置以及具体坐标。
然后我们像荡漾一样扩散着用 BFS 去求方向。找每个位置的上一步,然后判断是否是一条路上的(即近来出口相同且隔断大于这个点的隔断),假如是,那么修改方向并压入队列,否则忽略。
似乎很成功地做完了,那么有哪些易错点呢?