这题说的是给了 n个值每个值 然后 他们的品均值 作为中点 然后每个点到中点的均值的平方 和最小值是多少

有 k 个点可以重新 放过位置 , 这样我们 应该 会选 最近的那个 n-k个点 然后 取他们的均值点  这样我们只要先排序 排完后 直接 遍历过去

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = ;
double A[maxn];
int main()
{
int cas;
scanf("%d",&cas);
for(int cc=; cc<=cas; ++cc){
int n,k;
scanf("%d%d",&n,&k);
for(int i=; i<n; ++i)
scanf("%lf",&A[i]);
sort(A,A+n);
double square=,dec=,x=;
if(n==k){
printf("0\n"); continue;
}
int sz=n-k; for(int i=; i<sz; ++i){
square+= A[i]*A[i];
dec+=*A[i];
x+=A[i];
}
double loc=x/sz;
double ans = -dec*loc + square + loc*loc*sz;
for(int i=sz; i<n; ++i){
square-=A[i-sz]*A[i-sz];
square+=A[i]*A[i];
dec-=*A[i-sz];
dec+=*A[i];
x-=A[i-sz];
x+=A[i];
loc=x/sz;
ans=min(ans,-dec*loc + square + loc*loc*sz);
}
printf("%lf\n",ans);
}
return ;
}

最新文章

  1. [Java 基础]控制语句
  2. 布置theano(Windows10,无cuda)
  3. NDK(8)&quot;Unknown Application ABI&quot;的解决方案
  4. T-SQL运算符
  5. Codeforces 710 E. Generate a String (dp)
  6. Unity3D开发之查找面板上某个脚本(包括Missing)
  7. bzoj3172
  8. java取得整数部分 代码
  9. 60分钟Python快速学习(转)
  10. 使用Canvas绘制简单的时钟控件
  11. React Fiber源码分析 第三篇(异步状态)
  12. 记录网件r6220路由器登录配置
  13. [资源]--完美解决--用VS中的Git做代码管理器,与他人共享代码
  14. NetBeans issues and solutions.(build.xml and debug multiple projects)
  15. SDOI2018物理实验
  16. 《算法》BEYOND 部分程序 part 2
  17. 阿里云oss服务通用类
  18. USB AUDIO Device CLASS Requests
  19. C# Redis 切换数据库
  20. JS学习 - offset家族(一)

热门文章

  1. Linux 下安装 Python3
  2. Python 列表表达式与生成器表达式
  3. 3dsmax sendto mudbox失效解决方案
  4. 《C++ Primer Plus》第14章 C++中的代码重用 学习笔记
  5. Axis2开发实例
  6. Mybatis头文件
  7. LeetCode——Populating Next Right Pointers in Each Node
  8. jquery类似方法的比较(一)
  9. 2012Noip提高组Day2 T3 疫情控制
  10. linux下有趣的几个命令