#iai22a2. 排版问题(Typesetting Problem)

排版问题(Typesetting Problem)

排版问题(Typesetting Problem)

题目描述

由于英文单词长短不一,对一篇文章进行排版的时候,要考虑均衡控制每行长度,达到整齐美观的效果。

给定一个整数 NN,再给定 NN 个整数 W1,W2,,WNW_1,W_2,\dots,W_N,表示有一篇文章,共有 NN 个单词,其中第 ii 个单词有 WiW_i 个字母。

请为这篇文章的单词断行,整篇文章尽量美观,偏离度到达最小。

整篇文章的偏离度为每一行偏离度的和。单独一行的偏离度定义为 (sA)2(s-A)^2,其中 AA 为一个给定的标准长度,ss 为这一行单词的字母数量之和。

输入格式

  • 第一行:两个整数 NNAA
  • 第二行:NN 个整数 W1,W2,,WNW_1,W_2,\cdots,W_N

输出格式

  • 单个整数:表示最小的排版偏离度。

样例输入 #1

10 20
8 9 4 5 7 3 4 9 9 3

样例输出 #1

3

样例说明 #1

| 8 9 4 | 5 7 3 4 | 9 9 3 |

每行之和分别为21、19、21,偏离度为 1+1+1=31+1+1=3

样例输入 #2

7 10
3 5 1 3 4 6 4

样例输出 #2

8

数据范围

  • 1A1000001\leq A\leq 100000
  • 1wi1001\leq w_i\leq 100
  • 对于 30% 的数据:1n251\leq n\leq 25
  • 对于 60% 的数据:1n50001\leq n\leq 5000
  • 对于 100% 的数据:1n2000001\leq n\leq 200000

知识点与难度

本题涉及的知识点从属于 GESP 8级(斜率优化动态规划),难度等级:⭐⭐⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤200 / 特殊: 全同长度 / 特殊: A极大一行容纳 / 特殊: A极小逐词一行
2 15 9~11 Hack: N=1边界 / Hack: 大数值溢出 / Hack: 交替大小词
3 30 12~20 中规模 N≈1000~5000 / 大规模 N≈1e5~2e5 压力
4 25 21~25 随机 N=1~2e5 回归