/ Vijos / 题库 /

修公路

修公路

时间限制:1秒  内存限制:256M


【问题描述】

  政府规划在边远丘陵地带修建一条笔直的公路,公路经过 \(N\) 个丘陵,每个丘陵的高度用一个非负整数表示。

  公路设计规范要求最高处和最低处的差不可以超过 \(D\),因此有可能要降低或抬高某些丘陵,对于一个高度为 \(a\) 丘陵,若干把它的高度变成 \(b\),则需要的花费是\((a-b)^2\)。

  现在给出 \(N\) 个丘陵的高度,请你求出修建公路的最小花费。注意,要求改造后的丘陵高度也必须是整数。

【输入格式】

  第一行包含两个整数 \(N\) 和 \(D\),表示丘陵数目和高度差限制。
  接下来的 \(N\) 行,每行一个整数,表示丘陵的高度,其中第 \(i+1\) 行的整数 \(h_i\) 表示第 \(i\) 个丘陵的高度。

【输出格式】

  只有一行,包含一个整数,表示最小费用。

【输入输出样例1】

 Input

5 17
20
4
1
24
21

 Output

18

【输入输出样例1说明】

  共有 5 个丘陵,它们的高度分别是 20,4,1,24,21,设计要求最高的丘陵高度与最矮的高度差不能超过 17。
  我们保持高度为 20,4,21 三个丘陵不变;然后将高度为 1 的丘陵改为 4 ,需要的花费为\((1-4)^2=9\);将高度 24 的丘陵改为 21,费用为 \((24-21)^2=9\),共花费 9+9=18 的费用。可以证明这是最少的费用。

【输入输出样例2】

 Input

6 20
3
9
20
7
8
100

 Output

4315

【输入输出样例2说明】

  一种最优方案是把高度为 3,9,20,7,8 的丘陵改成 21,把高度为 100 的丘陵改成 41,这样的花费是:
    \((21-3)^2 +(21-9)^2 + (21-20)^2 + (21-7)^2 + (21-8)^2 +(100-41)^2 = 4315\)。

【数据说明】

  对于 \(50\%\) 的数据,\(1 ≤ N ≤100\),\(0 ≤ D,h_i ≤ 1000\)。
  对于 \(80\%\) 的数据,\(1 ≤ N ≤10000\),\(0 ≤ D,h_i ≤ 1000\)。
  对于 \(100\%\) 的数据,\(1 ≤ N ≤100000\),\(0 ≤ D,h_i ≤ 1000000\)。

【来源】

  Mr.he

信息

ID
1494
难度
9
分类
搜索 | 枚举 点击显示
标签
递交数
1
已通过
1
通过率
100%
被复制
6
上传者