zoukankan      html  css  js  c++  java
  • XTU 1249 Rolling Variance

    $2016$长城信息杯中国大学生程序设计竞赛中南邀请赛$G$题

    前缀和。

    把公式化开来,会发现只要求一段区间的和以及一段区间的平方和就可以了。

    #pragma comment(linker, "/STACK:1024000000,1024000000")
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<vector>
    #include<map>
    #include<set>
    #include<queue>
    #include<stack>
    #include<iostream>
    using namespace std;
    typedef long long LL;
    const double pi=acos(-1.0),eps=1e-8;
    
    const int maxn=100010;
    int n,m;
    int a[maxn],sum[maxn],sum2[maxn];
    
    int main()
    {
        while(~scanf("%d%d",&n,&m))
        {
            for(int i=1;i<=n;i++) scanf("%d",&a[i]);
            sum2[0]=sum[0]=0;
            for(int i=1;i<=n;i++)
            {
                sum[i]=sum[i-1]+a[i];
                sum2[i]=sum2[i-1]+a[i]*a[i];
            }
    
            for(int i=m;i<=n;i++)
            {
                int st=i-m+1,en=i;
                double avg=1.0*(sum[en]-sum[st-1])/m;
                double ans=((sum2[en]-sum2[st-1])+m*avg*avg-2*avg*(sum[en]-sum[st-1]))/(m-1);
                printf("%.8lf
    ",sqrt(ans));
            }
        }
        return 0;
    }
  • 相关阅读:
    set, unordered_set模板类
    C/C++ Bug记录
    win10远程连接
    C/C++缓冲区刷新问题
    hihocoder1711 评论框排版[并查集+set]
    makefile
    Virtual Table
    粤语
    xilinx SDK开发 GPIO使用API总结
    基于zynq 7020的串口UART中断实验
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5818908.html
Copyright © 2011-2022 走看看