#833. 双十一的极限凑单
双十一的极限凑单
题目背景
双十一到了,各大电商平台推出了"满减"活动。小华的信用卡额度极大,达到了 W 元。
购物车里有 N 件他心仪的商品,第 i 件商品的价格为 w_i 元。然而这些东西虽然贵,但能给小华带来的"快乐值" v_i 却很低。
小华想在不刷爆信用卡(总花费不超过 W)的前提下,获得尽可能高的总快乐值。由于价格极其庞大,用普通的计算方法电脑会直接死机,请你帮小华写一个高效的程序。
题目描述
给定信用卡额度 W 和 N 件商品,每件商品有价格 w_i 和快乐值 v_i。求在总花费不超过 W 的条件下能获得的最大总快乐值。
核心思路:由于快乐值 v_i 很小(总和不超过 1000),可以反转思路,以快乐值为容量进行 DP。
输入格式
第一行包含两个整数 W 和 N,分别表示信用卡额度和商品数量。
接下来 N 行,每行两个整数 w_i 和 v_i,分别表示第 i 件商品的价格和快乐值。
输出格式
输出一个整数,表示能获得的最大总快乐值。
样例输入
10000000 3
5000000 3
6000000 4
4000000 2
样例输出
6
样例解释 信用卡额度是 1000万。 买第 2、3 件商品,总价格为 600万 + 400万 = 1000万 ≤ 1000万,获得的快乐值为 4 + 2 = 6。
数据范围
1 ≤ W ≤ 10^9 (注意这极大) 1 ≤ N ≤ 100 1 ≤ w_i ≤ 10^7 1 ≤ v_i ≤ 10 (注意这极小,所有物品快乐值总和不会超过 1000)
统计
相关
在以下作业中: