#MC1022. 自动化灌溉

自动化灌溉

题目背景

wyc 加了工业模组,导致他自动农场里的农作物因为没有水全没了。于是,他决定弄一个自动化灌溉系统。

题目描述

wyc 的自动农场需要从多个地下水库抽水,通过管道网络灌溉到多个农田区块。

每个管道有最大流量限制(单位:桶//秒),而每个农田需要稳定的最小水量农作物才不会消失。请你帮 wyc 设计一个算法,计算从水库到农田的最大可持续总流量


形式化题意:

  1. 网络结构:

    • 地图包含 nn 个节点(水库、农田、中转站),编号为 00n1n-1

    • mm 条单向管道,每条管道有容量 cc(最大流量)。

    • 超级水库:所有真实水库连接到虚拟源点 SS(编号 nn)。

    • 超级农田:所有真实农田连接到虚拟汇点 TT(编号 n+1n+1)。

  2. 目标:计算从 SSTT 的最大流量(即所有农田的总灌溉量)。

输入格式

第一行三个整数 n,m,kn,m,k,分别表示节点数、管道数、真实水库或农田的数量。

接下来 kk 行,每行两个整数 typetypeidid

  • type=0type=0 表示编号 idid 是真实水库(连接到 SS)。
  • type=1type=1 表示编号 idid 是真实农田(连接到 TT)。

接下来 mm 行,每行三个整数 u,v,cu,v,c,表示这是一条从节点 uuvv 的容量为 cc 的单向管道。

输出格式

一个整数,表示最大可持续总流量。

输入输出样例 #1

输入 #1

5 7 3
0 0
0 1
1 4
0 2 10
0 3 5
2 3 15
2 4 10
3 4 10
4 2 5
3 4 8

输出 #1

15

说明/提示

样例解释:

关键增广路径:

  • S024TS \to 0 \to 2 \to 4 \to T(流量 1010

  • S034TS \to 0 \to 3 \to 4 \to T(流量 55

总流量 =10+5=15=10+5=15

数据范围与约定

对于 100%100\% 的数据,2n1000,1m100,1c1052 \le n \le 1000,1 \le m \le 100,1 \le c \le 10^5

保证 idid 没有重复。