这道题一开始没有什么思路,后来上网看了下别人的题解才发现原来就是一种BFS。
之前迷宫类题目(无加权),直接可以用BFS来做,但是这道题加入了另外两个条件——方向和颜色。其实这就相当于将原来的二维空间扩展到了四维空间。我们要做的就是在这四维状态空间中进行搜索。和原来的二维情况不同的是,这个题目加入了转向的要素,也就是说相邻状态的距离间隔不一定是1,这就比较坑爹,不能直接使用队列来进行存储,需要用一个优先队列(小顶堆)。也许有更好的方案,请务必告诉我。
有一个需要注意的点是,每一次转向所处的状态不能漏掉(转向后还没开始行走),我一开始就是没有注意这一点被坑了。
|
|
开始没做出来还是对BFS(搜索)认识不深刻,以后还需要多加练习。(。・・)ノ