方差

    技术2024-08-20  57

    题目链接:方差


    把公式化成期望和公差的公式: D(x)=E(x^2)-E(x)*E(x) E(x)=区间sum/m E(x^2)=区间平方sum/m 然后排序之后,尺取即可

    AC代码:

    #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> #define int long long using namespace std; const int N=1e6+10; int n,m,s1,s2,a[N],res=1e18; signed main(){ cin>>n>>m; for(int i=1;i<=n;i++) scanf("%lld",&a[i]); sort(a+1,a+1+n); for(int i=1;i<m;i++) s1+=a[i],s2+=a[i]*a[i]; for(int i=m;i<=n;i++){ s2+=a[i]*a[i]-a[i-m]*a[i-m],s1+=a[i]-a[i-m]; res=min(res,m*s2-s1*s1); } cout<<res; return 0; }
    Processed: 0.011, SQL: 9