③ 处应填入
(特殊最短路)给定一个含 N 个点、M 条边的带权无向图,边权非负。起点为 S,终点为 T。对于一条 S 到 T 的路径,可以在整条路径中,至多选择一条边作为“免费边”:当第一次经过这条被选中的边时,费用视为 0;如果之后再次经过该边,则仍按其原始权重计费。点和边均允许重复经过。求从 S 到 T 的最小总费用。以下代码求解了上述问题。试补全程序。
cpp复制1#include <algorithm> 2#include <iostream> 3#include <queue> 4#include <vector> 5using namespace std; 6,[object Object], 7,[object Object], 8,[object Object], 9,[object Object], 10,[object Object],cpp复制1},[object Object],
1#include <algorithm> 2#include <iostream> 3#include <queue> 4#include <vector> 5using namespace std; 6,[object Object], 7,[object Object], 8,[object Object], 9,[object Object], 10,[object Object],
1},[object Object],
d[v][1]
d[v][used]
d[u][used]
d[v][0]