#P1078. 动态规划入门(非常规DP1:筷子)

动态规划入门(非常规DP1:筷子)

题目描述

NN 根筷子,长度为 T1T_1T2T_2T3T_3\dotsTNT_N。组成 (K+3)(K+3) 对,使每双的筷子长度差的平方和最小。

输入格式

共有两行,第一行为两个用空格隔开的整数,表示 NNKK,第二行共有 NN 个用空格隔开的整数,为 TiT_i

输出格式

仅一行。如果凑不齐 (K+3)(K+3) 双,输出 -1,否则输出长度差平方和的最小值。

10 1
1 1 2 3 3 3 4 6 10 20
5

数据规模与约定

【数据说明】

第一双 (1,1)(1,1)

第二双 (2,3)(2,3)

第三双 (3,3)(3,3)

第四双 (4,6)(4,6)

(11)2+(23)2+(33)2+(46)2=5(1-1)^2+(2-3)^2+(3-3)^2+(4-6)^2=5

【数据范围】

1N1001\le N\le1001K,Ti501\le K,T_i\le50

提示

有证明的成分,应该说证明的成分比较多,搞定证明就能减少状态的搜索,状态方程就好解决了!

这题含有贪心的策略,然后才能动态规划。算是质量比较好的题。