IOI 2007 Miners
三种食物,两个矿地。
每个矿地会记得最靠近的三种食物, 每一次给他们一个新的食物时,答案会加上有多个不同的食物。
求答案的最大值。
很简单的dp:
$dp_{i,a1,a2,b1,b2}$ 表示当前已经分了i个食物, a的上两个食物为$a1,a2$,$b$的上两个食物为$b1,b2$。
那么转移状态为: 让$s_{i}$表示当前的食物类
$dp_{i,a1,a2,b1,b2} + profit(a1,a2,s_{i})$ 转移到至 $dp_{i+1,a2,s_{i},b1,b2} $
$b$则类似
答案就是$max(dp_{n,any,any,any,any})$
时间复杂度为 $O(n*4^4)$
空间复杂度可以利用翻滚技巧降低至 $O(1)$
浙公网安备 33010602011771号