AT_utpc2012_10.きたまさの逆襲
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 n 个宝箱,以及可以打开宝箱的 m 把钥匙。第 i 把钥匙可以打开 ki 个宝箱,分别为 ai,1,ai,2,…,ai,ki,保证对 j=k 有 ai,j=ai,k。一把钥匙在打开一个宝箱后就会消失,之后无法再使用。有 d 家商店,第 i 把钥匙可以在商店 si 买到;购买第 i 把钥匙最开始需要 ci 元。
小 A 想打开所有的宝箱,所以他需要买钥匙,但他不能买多把相同的钥匙。小 B 想通过涨价的方式阻挠小 A。小 B 可以指定商店 j,并将 j 商店出售的所有钥匙的价格同时提升相同的金额;将 j 商店出售的钥匙提升 1 元会花费小 B bi 元。小 B 所提升的值必须是整数;举例来说,若 bj=2,小 B 不能花费 1 元将 j 商店出售的钥匙的价格提升 0.5 元。
请找到 (小 A 的最大花费 − 小 B 的最大花费) 的最大值。若此值可以是无限大,则输出 -1。
保证在小 B 不阻挠的情况下小 A 可以打开所有宝箱。
1≤n≤100, 1≤m≤1000, n,d≤m, 1≤bi,ci≤1000, 1≤si≤d, 1≤ki≤min(10,n), 1≤ai,j≤n。
输入格式
第一行三个整数,分别表示 n,m,d。
接下来 m 行,第 i 行表示第 i 把钥匙的信息。
这 m 行中的第 i 行有 ki+3 个整数。前三个整数分别表示 ci,si,ki,随后 ki 个整数,第 j 个整数表示 ai,j。
接下来 d 行,每行一个整数,第 i 行的值表示 bi。
输出格式
一行一个整数,表示所求的最大值。若此值可以是无限大,则输出 -1。
输入解题思路,AI测评打分。不知道怎么写?