检测到 KaTeX 加载失败,可能会导致文中的数学公式无法正常渲染。
#题面
#题目描述
已知 个正整数 。今要将它们分成 组,使得各组数据的数值和最平均,即各组的均方差最小。均方差公式如下:
其中 为均方差, 为各组数据和的平均值, 为第 组数据的数值和。
#输入格式
第一行是两个整数,表示 的值( 是整数个数, 是要分成的组数)
第二行有 个整数,表示 。整数的范围是 。
#输出格式
输出一行一个实数,表示最小均方差的值(保留小数点后两位数字)。
#输入输出样例
样例输入 #1
6 3
1 2 3 4 5 6
样例输出 #1
0.00
样例解释 #1
、、 分别为一组.
#数据范围与提示
- 对于 的数据,保证有 ,;
- 对于 的数据,保证有 ,。
#思路
一个乱搞的贪心做法:对于每个 都将其插入到组内值总和最小的组中,这样可以使得方差尽可能小。
但看起来这样搞出来的答案正确性不太行,所以需要将 数组进行全排列来找出正确答案,然后复杂度就达到了 的级别,显然跑不过这道题。
那么可以试试使用 std::shuffle
函数来碰碰运气,多打乱几次,找到最优解的概率就大大增加了。
#代码
1 |
|