#iai21a3. 划分(Partition)

划分(Partition)

划分

题目描述

定义集合的权值为集合中元素最大值与最小值的差的平方。

nn 个元素构成的多重集合(可以有重复的元素的集合)划成 mm 个子集,使得各个集合的权值的和最小,求出这个最小值。

输入格式

输入共两行:

第一行:两个整数 nnmm,其中 nn 是集合中元素个数,mm 是划分成的子集的个数。

第二行 nn 个整数,第 ii 个数表示集合中的第 ii 个元素。

输出格式

输出共一行,输出题目所求最小值。

样例输入 #1

5 2
9 2 5 8 3

样例输出 #1

10

样例说明 #1

划分成 {2,5,3}\{2,5,3\}{8,9}\{8,9\},权值之和为 9+1=109+1=10

数据范围

  • 对于 30% 的数据:n500,m50n\le 500, m\le 50
  • 对于 60% 的数据:n5000,m500n\le 5000, m\le 500
  • 对于 100% 的数据:n50000,m5000n\le 50000, m\le 5000,数据保证输入的所有数字的绝对值都不超过 1000010000

测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤10 / 特殊: 全相同 / 特殊: m=n
2 15 9~11 Hack: N=1边界 / Hack: 含负数 / Hack: m=1
3 30 12~20 中规模 N≈100~5000 / 大规模 N≈5e4 压力
4 25 21~25 随机 N=1~5e4 回归