3678.方差

链接:Miku

-----------------------

题目非常”简单“

----------------------

乍一看题,和和积积真讨厌

但是为什么要乘m^2呢

这时候我们拿起来了🖊,乘乘画画,一个答案呼之欲出

(看一下代码就懂了)

------------------------

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long q[1000001],qq[1000001];
int n,m;
int k;
long long now;
long long ans;
long long sum,mi;
int main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;++i){
        scanf("%d",&k);
        q[i]=k;
        qq[i]=k*k;
    }
    sort(q+1,q+n+1);
    sort(qq+1,qq+n+1);
    for(int i=1;i<=m;++i){
        sum+=q[i];
        mi+=qq[i];
    }
    now=ans=m*mi-sum*sum;
    for(int i=m+1;i<=n;++i){
        sum=sum+q[i]-q[i-m];
        mi=mi+qq[i]-qq[i-m];
        now=m*mi-sum*sum;
        ans=min(ans,now);
    }
    cout<<ans;
    return 0;
}
Ac'

 

posted @ 2020-07-19 19:35  Simex  阅读(137)  评论(0编辑  收藏  举报