小红正在尝试训练一个超大规模的语言模型,但由于显存有限,训练过程中出现了空间不足的问题。为了让程序继续运行,小红必须从当前的 n 个候选项中挑选出一部分张量进行清理,以释放至少 m 单位的显存空间。 对于每一个张量,小红有两种处理方式:第一种是将其临时交换到系统内存中,第二种是直接将其删除并在未来需要时重新计算。这两种方式各自对应一个成本值。小红非常聪明,对于每一个被决定清理的张量,她都会从这两种方式中选择成本更低的一种来执行。 请你帮小红计算一下,在保证释放的空间总量不少于 m 的前提下,清理这些张量所需要的最小总成本是多少?
输入描述:
第一行包含一个整数 m(0 第二行包含一个整数 n(0 第三行包含 n 个整数,表示每个张量所占据的空间大小,数值均在 范围内。 第四行包含 n 个整数,表示每个张量执行“交换”操作的成本,数值均在 范围内。 第五行包含 n 个整数,表示每个张量执行“重算”操作的成本,数值均在 范围内。
输出描述:
输出一行,包含一个整数,代表满足要求的最小总成本。如果无论如何挑选都无法腾出至少 m 的空间,请输出字符串 error。
示例1
说明
在该样例中,小红需要释放至少 6 单位空间:
张量 1:空间为 3,交换成本 10,重算成本 1。小红会选择较低的成本 1。
张量 2:空间为 3,交换成本 2,重算成本 8。小红会选择较低的成本 2。
张量 3:空间为 5,交换成本 5,重算成本 10。小红会选择较低的成本 5。
如果选择清理张量 1 和张量 2,总释放空间为 3+3=6,刚好满足要求,此时总成本为 1+2=3。这是所有方案中成本最低的。
加载中...