/ Vijos / 题库 /

商店购物

商店购物

时间限制:1秒  内存限制:256M


【题目描述】

  在商店中,每一种商品都有一个价格(用整数表示)。例如一朵花的价格是 2 元,而一个花瓶的价格是 5 元。为了吸引更多的顾客,商店举行了促销活动。
  促销活动把一个或多个商品组合起来降价销售,例如: 三朵花的价格是 5 元, 而不是 6 元, 两个花瓶和一朵花的价格是 10 元,而不是 12 元。
  编写一个程序,计算顾客购买一定商品的花费,尽量利用优惠使花费最少。尽管有时候添加其他商品可以获得更少的花费,但是你不能这么做。
  对于上面的商品信息,购买三朵花和两个花瓶的最少花费的方案是:以优惠价购买两个花瓶和一朵花(10元),以原价购买两朵花(4元)。

【输入格式】

  输入包括一些商店提供的优惠信息,接着是购物清单:
  第 \(1\) 行: 优惠方式的种类数:\(S\)。
  第 \(2\) 行..第 \(S+1\) 行: 每一行都用几个整数来表示一种优惠方式: 第 1 个整数:\(N(1<=N<=5)\),表示这种优惠方式由 \(N\) 种商品组成。后面 \(N\) 对整数 \(c\) 和 \(k\), 表示 \(k(1≤k≤5)\) 个编号为 \(c(1≤c≤999)\) 的商品共同构成这种优惠, 最后的整数 \(p(1≤p≤9999)\) 表示这种优惠的优惠价。优惠价总是比原价低。
  第 \(S+2\) 行 这一行有一个整数 \(b(0≤b≤5)\),表示需要购买 \(b\) 种不同的商品。
  第 \(S+3\) 行..第 \(S+b+2\) 行: 这 \(b\) 行中的每一行包括三个整数:\(c,k\),和 \(p\) 。\(c(1≤c≤999)\) 表示唯一的商品编号,\(k(1≤k≤5)\) 表示需要购买的 \(c\) 商品的数量。\(p(1≤p≤999)\) 表示 \(c\) 商品的原价。最多购买 \(5 * 5 = 25\) 个商品。

【输出格式】

  只有一行,输出一个整数:购买这些物品的最低价格。

【输入输出样例】

 Input

2
1 7 3 5
2 7 1 8 2 10
2
7 3 2
8 2 5

 Output

14

【数据限制】

  对于 \(100\%\) 的数据满足:0 ≤ s ≤ 99, 商品的编号为 1..999 范围内的整数; 每种优惠组合包含的商品个数最多为 5。 每种优惠组合的优惠价的范围是:1..9999 单个商品价格的范围是:1..999

【来源】

  Mr.he

信息

ID
2497
难度
(无)
分类
动态规划 | 背包 点击显示
标签
递交数
0
已通过
0
通过率
?
被复制
2
上传者