挖坑。
https://gist.github.com/lychees/6b77182120f681429f8f
http://blog.brucemerry.org.za/
Problem B. Buffed Buffet
Brief description:
多重背包、凸背包。
有两类物品可供选择,离散和连续。
对于连续的物品,初始单位容量的价值为 t
、单位容量价值损失的速率为 dt。
对于离散的物品,每份物品的容量是 w
、初始每份物品的价值为 t
、每选择一个物品,下一个件物品价值损失的速率为 dt
。
问恰好装满 m
容量时的最大价值。
Analysis:
$$! \begin{aligned}g'(i) &= \max_{0 \le j \le i}\big\{ g(j) + \sum_{n=1}^{i-j}(t – (n-1)d\big\}\\&= \max_{0 \le j \le i}\big\{ g(j) + (i-j)t – \frac{(i-j-1)(i-j)}{2}\cdot d\big\}\\&= \max_{0 \le j \le i}\big\{ g(j) + (i-j)t – \frac{i(i-1)+j(j+1)-2ij}{2}\cdot d\big\}\\&= it – \frac{i(i-1)d}{2} + \max_{0 \le j \le i}\big\{ g(j)-\frac{j(j+1)d}{2} – jt + ijd\big\}\\&= it – \frac{i(i-1)d}{2} + \max_{0 \le j \le i}\big\{ h(j) + ijd \big\}\end{aligned}$$