入门OJ 1203: 酒鬼
题目
Description
Santo刚刚与房东打赌赢得了一间在New Clondike 的大客厅。今天,他来到这个大客厅欣赏他的奖品。房东摆出了一行瓶子在酒吧上。瓶子里都装有不同体积的酒。令Santo高兴的是,瓶子中的酒都有不同的味道。房东说道:“你可以喝尽可能多的酒,但是一旦打开酒盖你就必须把它喝完,喝完一瓶后把它放回原处。还有一件最重要的事,你必须从左至有依次喝,并且不能连续超过三瓶,不然会给你带来坏运气。”现在可怜的Santo站在酒吧前努力的想着,他到底应该喝哪几瓶才能使喝的酒最多呢?请帮助他找出他应该喝的酒瓶号,因为思考让他感到不安。
Input
第一行一个整数\(N\),有\(N\)个酒瓶。\(N\leq700\)接下有N行,第\(I+1\)行的数字代表酒瓶\(I\)中酒的体积。 ## Output
一个数字,喝的酒的最大总体积。遵守以上规则,使得三个连续瓶子中至少一个瓶子是满的。
## Sample Input ## Sample Output 1
2
3
4
5
6
76
6
10
13
9
8
1 # 题解
1
33
DP从头开始学系列 \(dp_i\)表示前\(i\)瓶能喝的最大体积, 转移方程为
\[ dp_i = \max(dp_{i - 1}, dp_{i - 2} + wine_i, dp_{i - 3} + wine_i + wine_{i - 1}) \]
1 |
|