K短路-魔法猪学院
题意:给定一个能量值 E E E,以及一些单向边权。求所拥有的能量能从 1 1 1走到 N N N多少次,并且每一次的走法不完全一样,即求最大的 K K K使得 前 K K K短路的和 不大于 E E E。
思路:
- 建边时将正反边都记录好
- 第一遍跑 d i j s t r a dijstra dijstra或 s p f a spfa spfa将从 1 1 1到所有点最短路求出来,作为 A ∗ A^* A∗算法的 g ( x ) g_{(x)} g(x)函数
- 然后反向跑 A ∗ A^* A∗算法(即在反向边上跑 B F S BFS BFS),那么如何跑呢?
- 我们可以利用优先队列,让 f ( x ) f_