考虑维护按照边权最小的堆,维护结点信息如下:
1 | int u; // 上一个结点 |
一开始,先将每个结点从最短的那条边扩展,然后对于每次操作。取队头元素,当前的路径距离就是第$idx$小的路径,用队头元素进行扩展:
- 从结点$v$最短的一条边扩展
- 从结点u的$id$下标编号进行扩展
扩展的时候维护上述信息。
这种贪心策略就是很对。
1 |
|
good good study.day day up!
考虑维护按照边权最小的堆,维护结点信息如下:
1 | int u; // 上一个结点 |
一开始,先将每个结点从最短的那条边扩展,然后对于每次操作。取队头元素,当前的路径距离就是第$idx$小的路径,用队头元素进行扩展:
扩展的时候维护上述信息。
这种贪心策略就是很对。
1 | #include <bits/stdc++.h> |
微信支付