#T1610. 「一本通 5.6 练习 1」玩具装箱

「一本通 5.6 练习 1」玩具装箱

题目描述

P 教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一维,再放到一种特殊的一维容器中。

P 教授有编号为 1⋯n1\cdots n 的 nn 件玩具,第 ii 件玩具经过压缩后的一维长度为 CiC_i。

为了方便整理,P 教授要求:

  • 在一个一维容器中的玩具编号是连续的;
  • 同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物。形式地说,如果将第 ii 件玩具到第 jj 个玩具放到一个容器中,那么容器的长度将为 x=j−i+∑k=ijCkx=j-i+\sum\limits_{k=i}^{j}C_k。

制作容器的费用与容器的长度有关,根据教授研究,如果容器长度为 xx,其制作费用为 (x−L)2(x-L)^2,其中 LL 是一个常量。P 教授不关心容器的数目,他可以制作出任意长度的容器,甚至超过 LL。但他希望所有容器的总费用最小。

输入格式

第一行有两个整数,用一个空格隔开,分别代表 nn 和 LL。

第 22 到第 (n+1)(n+1) 行,每行一个整数,第 (i+1)(i+1) 行的整数代表第 ii 件玩具的长度 CiC_i。

输出格式

输出一行一个整数,代表所有容器的总费用最小是多少。

样例

5 4
3
4
2
1
4
1

数据范围与提示

对于全部数据,1≤n≤5×1041\le n\le 5\times 10^4,1≤L≤1071\le L\le 10^7,1≤Ci≤1041\le C_i\le 10^4。

(原题 Ci≤107C_i\le 10^7,此时 (si+i)2(s_i+i)^2 会超过 long long;本 OJ 把 CiC_i 缩小到 10410^4,用 long long 交叉相乘即可。)

来源:《信息学奥赛一本通·提高篇》第五部分第 6 章 练习 1(HNOI2008,洛谷 P3195)。