题目名称 | 4057. 买东西题 |
---|---|
输入输出 | pay.in/out |
难度等级 | ★★ |
时间限制 | 3000 ms (3 s) |
内存限制 | 512 MiB |
测试数据 | 10 |
题目来源 | cqw 于2024-11-10加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:5, 提交:8, 通过率:62.5% | ||||
郭帅 | 100 | 1.690 s | 7.94 MiB | C++ |
darkMoon | 100 | 1.691 s | 12.50 MiB | C++ |
小金 | 100 | 1.723 s | 12.54 MiB | C++ |
darkMoon | 100 | 1.794 s | 12.49 MiB | C++ |
梦那边的美好ET | 100 | 1.898 s | 12.57 MiB | C++ |
梦那边的美好ET | 10 | 1.749 s | 7.93 MiB | C++ |
darkMoon | 0 | 2.140 s | 3.10 MiB | C++ |
darkMoon | 0 | 17.250 s | 90.31 MiB | C++ |
本题关联比赛 | |||
梦熊NOIP第一场 |
关于 买东西题 的近10条评论(全部评论) |
---|
你要买 n 个物品,第 i 个物品原价 ai 元,折扣价 bi 元(保证 bi≤ai)。
你还有 m 个满减优惠券,第 j 个优惠券形如原价满 wj 减 vj(保证vj≤wj)。
对于第 i 个物品,你可以选择以下三种购买方式之一:使用原价 ai 购买。使用折扣价 bi 购买。选择一个未使用过的优惠券 j,要求满足 ai≥wj,使用优惠券 j,以 ai−vj 的价格购买。注意每个优惠券 j 只能被最多一个 i 使用。求购买所有物品最少用钱。
第一行,两个正整数 n,m,表示物品数量和优惠券数量。
接下来 n 行,每行两个正整数 ai,bi,表示第 i 个物品的原价和折扣价。
接下来 m 行,每行两个正整数 wj,vj,表示第 j 个优惠券是满 wj 减 vj 的。
仅一行,一个整数,表示最少用钱。
5 4 7 5 4 2 5 2 6 4 6 3 5 1 7 4 5 4 3 2
12
因为满足w2≤a1 即 7≤7,所以可以使用原价和第 2 个优惠券购买第 1 个物品,花费 7−4=3 元。
因为满足 w4≤a2 即 3≤4,所以可以使用原价和第 4 个优惠券购买第 2 个物品,花费 4−2=2 元。
使用折扣价购买第 3 个物品,花费 2 元。
使用原价和第 3 个优惠券购买第 4 个物品,花费 6−4=2 元。
使用折扣价购买第 5 个物品,花费 3 元。
共 3+2+2+2+3=12 元。可以证明这是最少用钱方案。
3 4 3 2 5 1 5 5 5 5 3 3 4 2 2 1
12
使用原价和第 22 个优惠券购买第 11 个物品。
使用折扣价购买第 22 个物品。
使用原价和第 11 个优惠券购买第 33 个物品。
共 0+1+0=10+1+0=1 元。
对于所有测试数据,保证:1≤n,m≤10^6,1 1≤ai,bi,wj,vj≤10^9,bi≤ai,vj≤wj。
在此键入。