#P1218. 装箱打包
显示设置
本题导航点一下展开
我的笔记
✕
装箱打包
装箱打包
题目背景
工厂的流水线上依次送来 件货物,它们必须按原来的先后顺序装箱,不允许打乱次序。每件货物都有固定的重量。厂长给打包机设了一条规则:一只箱子除了装货,还要额外加上 千克的固定配重(包装材料与缓冲垫),装箱的代价等于箱内总重量与配重之和的平方。厂长想找到一种装箱方案,让总代价最小。
题目描述
有 件货物排成一行,第 件货物的重量为 ()。
你需要把这 件货物分成若干段,每一段对应一只箱子,要求每件货物恰好属于一只箱子,并且同一只箱子里的货物在原来的队伍中必须是连续的一段。也就是说,你只需要选择若干个切分点,把整个序列切成若干段,每段首尾相接。
给定常数 ()。如果一只箱子里货物的总重量为 ,那么这只箱子的代价是
请你求出所有装箱方案中,总代价的最小值。
输入格式
从标准输入读入数据。
第一行两个整数 。
第二行 个整数 ,依次表示每件货物的重量。
输出格式
输出到标准输出。
一行一个整数,表示最小的总代价。
样例 1 输入
3 2
1 2 3
样例 1 输出
50
样例 1 解释
四种装箱方案的代价分别是:
- 一只箱子装下全部:;
- 分成 与 :;
- 分成 与 :;
- 每件单独一箱:。
最小总代价是 。
样例 2 输入
4 0
2 2 2 2
样例 2 输出
16
样例 2 解释
时把四件货物分开装,每只箱子代价 ,总代价 ;装在一起是 ,所以分开更优。
数据范围
| 测试点编号 | |||
|---|---|---|---|
对全部测试数据,保证 ,,。
提交说明
本题使用标准输入输出。程序应从标准输入读入数据,并将答案输出到标准输出。
相关
在下列比赛中: