bzoj#P2019. [USACO2009 Nov] 找工作

[USACO2009 Nov] 找工作

题目描述

奶牛们没钱了,正在找工作。农夫约翰知道后,希望奶牛们四处转转,碰碰运气。而且他还加了一条要求:一头牛在一个城市最多只能赚 dd 美元,然后它必须到另一座城市工作。当然,它可以在别处工作一阵后又回来原来的城市再最多赚 dd 美元。而且这样往往返返的次数没有限制。城市间有 pp 条单向路径连接,共有 cc 座城市,编号 1c1 \ldots c。贝希当前处在城市 ss。路径 ii 从城市 aia_i 到城市 bib_i,在路径上行走不用花任何费用。为了帮助贝希,约翰让它使用他的私人飞机服务。这项服务有 ff 条航线,每条航线是从城市 jij_i 飞到另一座城市 kik_i,费用是 tit_i 美元。如果贝希手中如果没有现钱,可以用以后赚的钱来付机票钱。贝希可以选择任何时候,在任何城市退休。如果在工作时间上不作限制,贝希总共可以赚多少钱呢?如果赚的钱也不会出现限制,就输出 -1

输入格式

第一行:55 个空格分开的整数 d,p,c,f,sd, p, c, f, s

第二行到第 p+1p+1 行:第 i+1i+1 行包含 22 个空格分开的整数,表示一条从 aia_ibib_i 的单向路径。

p+2p+2 行到第 p+f+1p+f+1 行:第 p+ip+i 包含 33 个空格分开的整数,表示一条从 jij_ikik_i 的单向航线,费用为 tit_i

输出格式

11 行:在上述规则下的最多可赚的钱数。

100 3 5 2 1
1 5
2 3
1 4
5 2 150
2 5 120
250

样例说明 1

贝希可以从城市 1155 再到 22,最后到 33,总共赚 4×100150=2504\times100 - 150 = 250 美元。

数据规模与约定

对于 100%100\% 的数据,1d1031 \leq d \leq 10^31p1501 \leq p \leq 1502c2202 \leq c \leq 2201sc1 \leq s \leq c1f3501 \leq f \leq 3501ji,ki,ai,bic1 \leq j_i, k_i, a_i, b_i \leq c1ti5×1041 \leq t_i \leq 5\times10^4

题目来源

Silver