用二维数组state[C][fuel], 表示在城市C油量为fuel时的最小代价.
怎样在一个节点上进行状态转移?
1. 把该节点的油量加1, 以供继续拓展.
2. 直接到其他可达节点.
注意:
1. 应使用优先队列(最小堆)优化搜索速度.
2. 用邻接表表示一个节点所有相邻的节点, 效率更高.
本文介绍了一种使用优先队列和邻接表优化的算法来解决带燃料限制的最短路径问题。通过定义二维数组记录各城市不同燃料量下的最小成本,并采用广度优先搜索策略实现状态转移。
用二维数组state[C][fuel], 表示在城市C油量为fuel时的最小代价.
怎样在一个节点上进行状态转移?
1. 把该节点的油量加1, 以供继续拓展.
2. 直接到其他可达节点.
注意:
1. 应使用优先队列(最小堆)优化搜索速度.
2. 用邻接表表示一个节点所有相邻的节点, 效率更高.