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)$ 均保持不变,则不继续迭代。