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)$

posted on 2023-11-15 10:13  yl_neo  阅读(18)  评论(0)    收藏  举报