社区讨论

蒟蒻问个题

灌水区参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m3tn2mqq
此快照首次捕获于
2024/11/23 11:57
去年
此快照最后确认于
2025/11/04 14:08
4 个月前
查看原帖
题:# 05-ZZ06-04-积分兑换(2)

题目描述

某学员积累了m积分,他想兑换玩具。兑换每个玩具需要一定的积分。现在已知有n个玩具,以及兑换每个玩具需要的积分。现在该学员准备去兑换玩具,他希望兑换掉的积分越多越好、兑换后剩余的积分越少越好,因为这些积分有期限,再不兑换就要清零了。问该学员最多可以花掉多少积分。

输入格式

输入数据第一行为两个正整数m和n,用空格隔开,m≤20000,n≤20,分别表示该学员的积分、玩具的数量。第二行为n个正整数,用空格隔开,范围为[1, 1000],表示兑换每个玩具需要的积分。

输出格式

输出数据占一行,为求得的答案。

样例 #1

样例输入 #1

CPP
300 10
82 96 87 96 67 80 69 67 88 81

样例输出 #1

CPP
299

样例 #2

样例输入 #2

CPP
820 10
82 96 87 96 67 80 69 67 88 81

样例输出 #2

CPP
813

提示

样例1说明:

兑换第1、5、7、10共4个玩具,或第1、7、8、10共4个玩具,或第2、5、7、8共4个玩具,或第4、5、7、8共4个玩具,总共花费299积分,剩余1积分。

样例2说明:

兑换10个玩具总共需要813积分,因此全部兑换,花掉813积分,还剩7积分。

本题出处

本题源自以下教材的测试题:王桂平, 林晓淅, 明正华, 等编著. C++趣味编程及算法进阶. 北京大学出版社, 2025年将出版.
本以为是sort,结果老师说是01背包,但蒟蒻算法才学到递归递推,求大佬帮助

回复

5 条回复,欢迎继续交流。

正在加载回复...