zoukankan      html  css  js  c++  java
  • NKOJ2317 英语四六级考试

      直接按公式算肯定会TLE,那么需要找其他办法。

      难点是如何不超时计算σ的值。实际上,σ计算式展开以后就是根号下xi的二次方的平均数减去xi平均数的二次方。那么只需要常模的前缀和数组与常模的平方的前缀和数组,那么对于每个询问即可快速算出常模的平均数与其平方的平均数。

     1 #include<iostream>
     2 #include<cmath>
     3 #include<vector>
     4 #include<cstdio>
     5 using namespace std;
     6 int main()
     7 {
     8     int n, q;
     9     scanf("%d%d", &n, &q);
    10     vector<int> a(n+1),sum(n+1),sum2(n+1);
    11     for (int i = 1; i <= n; ++i)
    12     {
    13         int A;
    14         scanf("%d",&A);
    15         a[i] = A;
    16     }
    17     for (int i = 1; i <= n; ++i)
    18     {
    19         sum[i] = sum[i - 1] + a[i];
    20         sum2[i] = sum2[i - 1] + a[i] * a[i];
    21     }
    22     for (int i = 0; i < q; ++i)
    23     {
    24         int l, r;
    25         scanf("%d%d", &l, &r);
    26         double ave = (double)(sum[r] - sum[l - 1]) / (r - l + 1);
    27         double ave2= (double)(sum2[r] - sum2[l - 1]) / (r - l + 1);
    28         double sigma = sqrt(ave2 - ave*ave);
    29         double result = -(double)75 / 70 * sigma + ave;
    30         printf("%lf
    ", result);
    31     }
    32 }
    View Code

      另外,这里如果用cin,cout而不用printf,scanf则会TLE。(屑开的评测机居然不支持ios::sync_with_stdio(false))

  • 相关阅读:
    MT【90】图论基础知识及相关例题
    MT【89】三棱锥的体积公式
    Qt之界面实现技巧
    QCompleter自动补全
    Qt之开机自启动
    Qt之日志输出文件
    相遇Qt5
    QT中的pro文件的编写
    qt下的跨目录多工程编译
    用QT打开网页
  • 原文地址:https://www.cnblogs.com/Algorithm-X/p/7520906.html
Copyright © 2011-2022 走看看