题单练习 资源分配型DP入门

A6989 | [USACO08MAR] River Crossing S

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

农夫约翰以及他的 $N$ 头奶牛打算过一条河,但他们所有的渡河工具,仅仅是一个木筏。

由于奶牛不会划船,在整个渡河过程中,约翰必须始终在木筏上。在这个基础上,木筏上的奶牛数目每增加 $1$,约翰把木筏划到对岸就得花更多的时间。

当约翰一个人坐在木筏上,他把木筏划到对岸需要 $M$ 分钟。
当木筏搭载的奶牛数目从 $i-1$ 增加到 $i$ 时,约翰得多花 $M_i$ 分钟才能把木筏划过河。
也就是说:

* 船上有 $1$ 头奶牛时,约翰得花 $M+M_1$ 分钟渡河;
* 船上有 $2$ 头奶牛时,时间就变成 $M+M_1+M_2$ 分钟;
* 以此类推,船上有 $k$ 头奶牛时,时间为 $M + \sum_{j=1}^{k} M_j$ 分钟。

那么,约翰最少要花多少时间,才能把所有奶牛带到对岸呢?
注意:这个时间得包括约翰一个人把木筏从对岸划回来接下一批的奶牛的时间(最后一批运送完成后不需要返回)。

输入格式

第一行包含 $2$ 个整数 $N$ 和 $M$。
第 $2$ 行至第 $N + 1$ 行,其中第 $i + 1$ 行包含 $1$ 个整数 $M_i$。

输出格式

输出共 $1$ 行,为农夫约翰让所有奶牛过河所需的最短时间。

输入输出样例

输入 #1
5 10
3
4
6
100
1
输出 #1
50
C++ 编辑器
输入
输出