Krydom: 暁の水平线に胜利を刻むのです

ソロモンの悪夢、見せてあげる!

@krydom1年前

06/15
16:52
最小割

[bzoj 1391] [Ceoi2008]order

♦♦♦♦♦♦   Description   ♦♦♦♦♦♦

有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成。 现在给出这些参数,求最大利润

♦♦♦♦♦♦   Input   ♦♦♦♦♦♦

第一行给出 N,M(1<=N<=1200,1<=M<=1200) 下面将有N块数据,每块数据第一行给出完成这个任务能赚到的钱(其在[1,5000])及有多少道工序 接下来若干行每行两个数,分别描述完成工序所需要的机器编号及租用它的费用(其在[1,20000]) 最后M行,每行给出购买机器的费用(其在[1,20000])

♦♦♦♦♦♦   Output   ♦♦♦♦♦♦

最大利润

♦♦♦♦♦♦   Sample Input   ♦♦♦♦♦♦

2 3
100 2
1 30
2 20
100 2
1 40
3 80
50
80
110

♦♦♦♦♦♦   Sample Output   ♦♦♦♦♦♦

50

♦♦♦♦♦♦   Hint   ♦♦♦♦♦♦

1.jpg

♦♦♦♦♦♦   题解  ♦♦♦♦♦♦

S向机器连ci的边,割掉表示购买这个机器。工序向T连vi的边,割掉表示不选这个工序。每个工序和它所需要的机器连边,边权为租用这个机器的费用,割掉表示租用这个机器。最后做一遍最小割。dinic要用当前弧优化。

 

[bzoj 1391] [Ceoi2008]order