#青训营笔记创作活动# 问题描述
小M在春游时打算携带尽可能多的巧克力板。她拥有n块巧克力板,每块巧克力的边长为ai​,重量为ai2​。小M有多个不同大小的背包,每个背包都有一定的最大承重限制。她希望你帮助她计算在每个背包的最大承重范围内,最多可以带走多少块巧克力板。

例如:小M有5块巧克力板,边长分别为1, 2, 2, 4, 5,有5个不同的背包,其最大承重分别为1, 3, 7, 9, 15。对于每个背包,她能装入的巧克力块数分别是1, 1, 2, 3, 3。

测试样例
样例1:

输入:n = 5, m = 5, a = [1, 2, 2, 4, 5], queries = [1, 3, 7, 9, 15]
输出:[1, 1, 2, 3, 3]

样例2:

输入:n = 4, m = 3, a = [3, 1, 2, 5], queries = [5, 10, 20]
输出:[2, 2, 3]

样例3:

输入:n = 6, m = 4, a = [1, 3, 2, 2, 4, 6], queries = [8, 12, 18, 25]
输出:[2, 3, 4, 4]

题解:
将巧克力板按边长从小到大排序,然后计算重量,每选择一个背包就遍历巧克力的重量,减去即可。
展开
评论