Loi_Vampire's Blog

自己选择的路,就算跪着也要走完

02/22
15:22
图论 网络流

BZOJ 1834 [ZJOI2010]network 网络扩容 网络流-费用流

Description

给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、 在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。

Input

输入文件的第一行包含三个整数N,M,K,表示有向图的点数、边数以及所需要增加的流量。 接下来的M行每行包含四个整数u,v,C,W,表示一条从u到v,容量为C,扩容费用为W的边。

Output

输出文件一行包含两个整数,分别表示问题1和问题2的答案。

Sample Input

5 8 2

1 2 5 8

2 5 9 9

5 1 6 2

5 1 1 8

1 2 8 7

2 5 4 9

1 2 1 1

1 4 2 1

Sample Output

13 19

30%的数据中,N<=100

100%的数据中,N<=1000,M<=5000,K<=10

HINT

 

Source

Day1

Solution

对于第一问,直接跑最大流算法即可。

对于第二问,在残量网络上建边,每一条边的流量为inf,费用为w,超级源跟1建边,流量为k,费用为0, 再跑最小费用最大流就好了。

(为什么可以这样? 在残量网络上,那些不需要扩容的边花费为0,所以必定会选中,不需要花费额外的花费)