思路: 其实求解很简单直接说解法,移动K个后 上下的角动量最小,能肯定是相连的(n-k)个,至于为什么 你自己好好想想(easy);

     对于一些等质量的质点中心在 所在位置和除以点的个数

     average=sum[l,l+(n-k)-1]/(n-k);

      一个点的值: (pi-average)* (pi-average)

      也就是 pi^2+avery^2 - 2*pi*average

      多个点相加也就是 ∑pi^2+(n-k)*sum*sum/(n-k)/(n-k)   -  2*∑pi*sum/(n-k);

            =   ∑pi^2+(n-k)*sum*sum/(n-k)/(n-k)   -  2*sum*sum/(n-k);

            =   ∑pi^2   -  sum*sum/(n-k);

     所以要处理一下 ”普通和“,“平方和” 就好了

     但是这个卡精度:我的做法  每次比较   (n-k)*∑pi^2   -  sum*sum

     剩下最小的 再除以(n-k) 就好了

代码.cpp

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <map>
#include <set>
#include <cstring>
using namespace std;
typedef long long LL;
LL p[50005];
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,k;
scanf("%d%d",&n,&k);
for(int i = 1; i<=n; i++)scanf("%I64d",p+i);
if(n==k||k==n-1)
{
printf("%d\n",0);
continue;
}
sort(p+1,p+n+1);
LL sum = 0;
LL SUM = 0;
for(int i = 1; i<=n-k; i++)
{
sum += p[i];
SUM += p[i] * p[i];
}
LL need=n-k;
LL min_ans = need*SUM - sum*sum;
for(int i = n-k+1,j=1; i <= n; i++,j++)
{
sum = sum + p[i] - p[j];
SUM = SUM + p[i]*p[i] - p[j]*p[j];
LL now = need*SUM - sum*sum;
min_ans=min(min_ans,now);
}
//LL tmp=min_ans/need;
// double t=min_ans%need;
// double ans=tmp+t/(double)need;
printf("%.11f\n",(double)min_ans/(double)need);
}
return 0;
}

  

Hdu 5073 Galaxy 精度问题的更多相关文章

  1. HDU 5073 Galaxy (2014 Anshan D简单数学)

    HDU 5073 Galaxy (2014 Anshan D简单数学) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5073 Description G ...

  2. hdu 5073 Galaxy(2014acm鞍山亚洲分部 C)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5073 Galaxy Time Limit: 2000/1000 MS (Java/Others)   ...

  3. hdu 5073 Galaxy(2014acm鞍山亚洲分部 D)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5073 Galaxy Time Limit: 2000/1000 MS (Java/Others)   ...

  4. 2014 Asia AnShan Regional Contest --- HDU 5073 Galaxy

    Galaxy Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5073 Mean: 在一条数轴上,有n颗卫星,现在你可以改变k颗 ...

  5. HDU 5073 Galaxy(2014鞍山赛区现场赛D题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5073 解题报告:在一条直线上有n颗星星,一开始这n颗星星绕着重心转,现在我们可以把其中的任意k颗星星移 ...

  6. ACM学习历程—HDU 5073 Galaxy(数学)

    Description Good news for us: to release the financial pressure, the government started selling gala ...

  7. hdu 5073 Galaxy(2014 鞍山现场赛)

    Galaxy                                                                   Time Limit: 2000/1000 MS (J ...

  8. HDU 5073 Galaxy(Anshan 2014)(数学推导,贪婪)

    Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total S ...

  9. hdu 5073 Galaxy 数学 铜牌题

    0.5 题意:有n(n<=5e4)个质点位于一维直线上,现在你可以任意移动其中k个质点,且移动到任意位置,设移动后的中心为e,求最小的I=(x[1]-e)^2+(x[2]-e)^2+(x[3]- ...

随机推荐

  1. 改动已有gpg密钥的用户标识及凝视

    /*********************************************************************  * Author  : Samson  * Date   ...

  2. Swift - 给表格添加编辑功能(删除,插入)

    1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标,删 ...

  3. 当try和finally里都有return时,会忽略try的return,而使用finally的return

    今天去逛论坛 时发现了一个很有趣的问题: 谁能给我我解释一下这段程序的结果为什么是:2.而不是:3 代码如下: class Test { public int aaa() { int x = 1; t ...

  4. All consistent reads within the same transaction read the snapshot established by the first read.

    Session 1: Session 2: mysql> show variables like '%tx_isolation%'; +---------------+------------- ...

  5. 一步步学习Linux开发环境搭建与使用

    00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...

  6. [Python] heapq简介

    [Python] heapq简介 « Lonely Coder [Python] heapq简介 judezhan 发布于 2012 年 8 月 8 日 暂无评论 发表评论 假设你需要维护一个列表,这 ...

  7. 使用KnockoutJs+Bootstrap实现分页

    [后端人员耍前端系列]KnockoutJs篇:使用KnockoutJs+Bootstrap实现分页   一.引言 由于最近公司的系统需要改版,改版的新系统我打算使用KnockoutJs来制作Web前端 ...

  8. Java程序猿面试题集(181- 199)

    Java面试题集(181-199) 摘要:这部分是包括了Java高级玩法的一些专题,对面试者和新入职的Java程序猿相信都会有帮助的. 181.  182. 183. 184. 185. 186. 1 ...

  9. TkinterGUI - 初识Tkinter

    前言 近期有写一个简单GUI程序的点子,具体写什么就不说了,但一个要求就是有跨平台的功能. 确切的讲,是我希望这个程序写好后能同时在Windows和Linux下运行,而且要方便随时修改. 对于编程语言 ...

  10. POJ1182 食物链 【并查集变种】

    挺简单的 N个元素扩展为 3*N个 i-A i-B i-C A吃B吃C吃A 挑战程序设计的89面 #include <cstdio> #include <cstdlib> #i ...