大致思路:
最短路想到bfs。这其实是bfs的一种变式——不用vis数组了,而是看这个点在“该状态下”是否曾被走过。而状态的表示便是在于把step二维数组变成三维,用第三维去状压表示10个宝藏点的状态。以此在每个状态下都去bfs,最终我们需要的是在每个宝藏点都被取到时走到点(0,0)的step值(即取到全部宝藏之后的状态下bfs第一次到达原点的步数)。
我觉得自己能够比较轻松理解的依据是——只要是bfs,那么,第一次到达则为最短路。
而这道题就灵活在对“状态”的处理上。
标程:
大致思路:
最短路想到bfs。这其实是bfs的一种变式——不用vis数组了,而是看这个点在“该状态下”是否曾被走过。而状态的表示便是在于把step二维数组变成三维,用第三维去状压表示10个宝藏点的状态。以此在每个状态下都去bfs,最终我们需要的是在每个宝藏点都被取到时走到点(0,0)的step值(即取到全部宝藏之后的状态下bfs第一次到达原点的步数)。
我觉得自己能够比较轻松理解的依据是——只要是bfs,那么,第一次到达则为最短路。
而这道题就灵活在对“状态”的处理上。
标程: