HDU 5094(状态压缩搜索)

给了一个图,让从1,1出发走到(n,m)路上会有一些门和墙和钥匙,墙过不去,门只能用对应的key打开,求最短路,钥匙种类最多10种。

只需定义  状态 (x,y,s) 为当前位置的情况下有什么钥匙,bfs就可以了。·


这里再提一点,即bfs第一次搜到状态肯定是用最短路搜到的,

bfs 所到状态的最短路性质。

如果一个搜到一个k层节点k并不是最短耗时,那么必然有比k-2层以上节点可以直接到达该节点,那么该节点应该早就已经被搜到,所以不成立。


状态的推断,这里的状态设计和动态规划一样,即足够状态转移。如本题不加钥匙这一维度,无法状态转移。



你可能感兴趣的:(Algorithm,C++,算法,HDU)