Acwing 1047. 糖果 dp

70 阅读1分钟

1047. 糖果 - AcWing题库

图纲

我们先画一下图纲,分析一下,再填图:

image.png

分析

状态表示

这道题让我们从N个产品中选糖果,构成一个集合,要求求这个集合内的糖果数相加为最大值。

但是这个最大值有要求:必须是k的倍数,但不超过1000000的最大数。

因此,状态表示可以填了:

image.png

状态计算

状态计算是一个化整为零的过程。我们通过求子问题的解来求出总问题的解。

这个过程要遵循不重不漏的原则。

在本题中重复不影响,比如1 1 1 1 4, k=5。答案为5

本题只需遵守不漏原则即可。

我们分解为子问题时一般看最后一个不同点。

在这道题中就是最后一件物品是否选。

image.png

code

image.png