B3608 [图论与代数结构 601] 最小费用最大流
题目描述
给定 $n$ 个点,$m$ 条边,给定每条边的容量和单位流量需要支付的费用,求点 $1$ 到点 $n$ 的最大流以及此时需要的最小费用。
**注意,图可能存在重边。**
输入格式
第一行两个整数 $n$、$m$,表示有 $n$ 个点 $m$ 条边。
从第二行开始的之后 $m$ 行,每行四个整数 $s_i$、$t_i$、$c_i$、$w_i$ 表示一条从 $s_i$ 到 $t_i$ 的边,容量为 $c_i$,单位流量需要支付的费用为 $w_i$。
输出格式
输出一行两个整数,表示最大流和最小费用。
说明/提示
对于所有数据,保证 $1 \le n \le 400$,$0 \le m \le 15000$,$0 \le w_i \le 2 ^ {31} - 1$,保证答案在 32 位有符号整数范围内。
本题数据较弱,不存在最小费用最大流的极限情况。
实现时,若使用 Bellman-Ford 算法可以考虑如下优化:若在某次迭代中所有 $\pi(i)$ 均保持不变,则不继续迭代。