首页 / 题库

P15078 - Shopping Offers 商店购物

动态规划入门
通过次数0 提交次数0 内存限制 128MB 时间限制1秒

描述

在商店中,每一种商品都有一个价格(用整数表示)。为了吸引顾客,商店推出了促销活动,将一种或多种商品组合起来以优惠价销售。

例如:
- 三朵花的价格是 5z 而不是 6z;
- 两个花瓶和一朵花的价格是 10z 而不是 12z。

现在,顾客需要购买一定数量的商品,请计算在充分利用这些优惠活动的情况下,最少需要花费多少钱。

注意:你不能为了获得更低的优惠价而额外添加不需要的商品,只能购买指定的商品,但可以自由选择使用哪些优惠(可以多次使用同一优惠,只要购买数量足够)。

输入

输入文件包括两部分:商店提供的优惠信息和顾客的购物清单。

- 第一行包含一个整数 `s`(`0 <= s <= 99`),表示优惠方案的种类数。
- 接下来 `s` 行,每行描述一种优惠方案:
- 第一个整数 `n`(`1 <= n <= 5`),表示该优惠由 `n` 种商品组成。
- 后面跟着 `n` 对整数 `c` 和 `k`(`1 <= k <= 5`),表示该优惠包含 `k` 个编号为 `c` 的商品。
- 最后一个整数 `p`(`1 <= p <= 9999`),表示该优惠的价格(优惠价一定低于原价总和)。
- 接下来一行包含一个整数 `b`(`0 <= b <= 5`),表示顾客需要购买 `b` 种不同的商品。
- 接下来 `b` 行,每行描述一种需要购买的商品:
- 三个整数 `c`、`k` 和 `p`:分别表示商品编号(`1 <= c <= 999`)、需要购买的数量(`1 <= k <= 5`)以及该商品的原价(`1 <= p <= 999`)。

注意:总购买数量不超过 `5 * 5 = 25` 个商品。

输出

输出一个整数,表示购买这些商品所需的最低总花费。

样例

  • 复制
  • 复制

提示

### 样例说明

- 优惠方案1:购买 3 个编号为 7 的商品,优惠价为 5。
- 优惠方案2:购买 1 个编号为 7 的商品和 2 个编号为 8 的商品,优惠价为 10。
- 购物清单:需要购买 3 个编号为 7 的商品(原价每个 2)和 2 个编号为 8 的商品(原价每个 5)。

最优方案:
1. 使用优惠方案2,购买 1 个 7 号和 2 个 8 号,花费 10。
2. 再以原价购买剩余的 2 个 7 号商品,花费 2×2 = 4。
总花费为 10 + 4 = 14。

## 数据范围与约定

- `s`:优惠方案数,$ 0 ≤ s ≤ 99 $。
- 每个优惠方案包含的商品种类数 `n`:$ 1 ≤ n ≤ 5$。
- 每种商品在一个优惠方案中的数量 `k`:$ 1 ≤ k ≤ 5$。
- 商品编号 `c`:$ 1 ≤ c ≤ 999$。
- 优惠价格 `p`:$1 ≤ p ≤ 9999$。
- 需要购买的商品种类数 `b`:$0 ≤ b ≤ 5$。
- 每种需要购买的商品数量 `k`:$1 ≤ k ≤ 5$。
- 商品原价 `p`:$1 ≤ p ≤ 999$。
- 总商品数量最多为 5×5 = 25 个。

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36