题目链接
UVa 1658
方法:拆点法 + 最小费用最大流
题目分析
题目大意
给出一个有向带权图,求从起点到终点的两条不相交路径使得权值和最小。
解析
把除起点和终点以外的点拆成两个点i和i’,然后在这两点之间连一条容量为1,费用为0的边。这样就保证了每个点最多经过一次。
其他有向边的容量也是1
然后求从起点到终点的流量为2(这样就保证了是两条路径)的最小费用流。
代码
1 |
|
Pursue excellence; Strive for perfection.
UVa 1658
方法:拆点法 + 最小费用最大流
给出一个有向带权图,求从起点到终点的两条不相交路径使得权值和最小。
把除起点和终点以外的点拆成两个点i和i’,然后在这两点之间连一条容量为1,费用为0的边。这样就保证了每个点最多经过一次。
其他有向边的容量也是1
然后求从起点到终点的流量为2(这样就保证了是两条路径)的最小费用流。
1 | #include <set> |