1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

思路

  • 关键等式:方差可用 Var=E[X2]−(E[X])2Var = E[X^2] - (E[X])^2Var=E[X2]−(E[X])2 计算。只需区间的 sumsumsum 与 sumsumsum 的平方和 ∑ai2\sum a_i^2∑ai2​。

  • 数据结构:维护两个树状数组(或线段树):

    • 一个维护区间和 S=∑aiS=\sum a_iS=∑ai​。
    • 一个维护平方和 Q=∑ai2Q=\sum a_i^2Q=∑ai2​。
  • 操作复杂度:单点修改 O(logn)O(log n)O(logn),区间查询 O(logn)O(log n)O(logn)。

  • 计算:查询 [l,r][l,r][l,r] 时,m=r−l+1m=r-l+1m=r−l+1,Var=Qm−(Sm)2Var = \dfrac{Q}{m} - \left(\dfrac{S}{m}\right)^2Var=mQ​−(mS​)2。使用 646464 位整型累计,最终用浮点输出。

P3384.第3题-工资方差

    1000ms Tried: 41 Accepted: 8 Difficulty: 5 所属公司 : 阿里
    算法与标签>树状数组

题目内容

给定 nnn 名员工的工资序列 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​ 。

方差 用来度量数据的离散程度,具体见下方名词解释。

现有 qqq 次操作。每次操作有两种类型:

1.将第 iii 名员工的工资修改为 xxx ;

2.查询区间 [l,r][l,r][l,r] 内的工资方差。

请处理所有操作,并输出每次查询的结果。

【名词解释】

  • 方差:方差 指对于长度为 mmm 的工资序列 {b1,b2,...,bmb_1,b_2,...,b_mb1​,b2​,...,bm​},其平均数为

bˉ=1m∑i=1mbi\bar{b}=\frac{1}{m}\sum^m_{i=1}b_ibˉ=m1​∑i=1m​bi​

方差定义为 Var=1m∑i=1m(bi−bˉ)2Var=\frac{1}{m}\sum^m_{i=1}(b_i-\bar{b})^2Var=m1​∑i=1m​(bi​−bˉ)2

输入描述

第一行输入两个整数 nnn 和 q(1≦n,q≦105)q(1≦n,q≦10^5)q(1≦n,q≦105) ,分别表示员工数量和操作次数。

第二行输入 nnn 个整数 a1,a2,...,an(1≦ai≦105)a_1,a_2,...,a_n(1≦a_i≦10^5)a1​,a2​,...,an​(1≦ai​≦105) ,表示员工的初始工资。

接下来 qqq 行,每行描述一种操作:

1.当操作类型为 111 时,输入格式为

111 iii x(1≦i≦n,1≦x≦105)x(1≦i≦n,1≦x≦10^5)x(1≦i≦n,1≦x≦105)

表示将第 iii 名员工的工资修改 xxx ;

2.当操作类型为 222 时,输入格式为 222 lll r(1≦l≦r≦n)r(1≦l≦r≦n)r(1≦l≦r≦n) 表示查询区间 [l,r][l,r][l,r] 内的工资方差。

输出描述

对于每次操作类型为 222 的操作,在一行上输出一个实数,表示区间 [l,r][l,r][l,r] 内的工资方差。

由于实数的计算存在误差,当误差的量级不超过 10−610^{-6}10−6 时,您的答案都将被接受。具体来说,设您的答案为 aaa ,标准答案为 bbb ,当且仅当

∣a−b∣max(1,∣b∣)≤10−6\frac{∣a-b∣}{max(1,∣b∣)}≤10^{-6}max(1,∣b∣)∣a−b∣​≤10−6

样例1

输入

5 3
1 2 3 4 5
2 1 5
1 3 10
2 1 5

输出

2.000000
9.840000

说明

在第一个样例中,初始化工资序列为 {1,2,3,4,51,2,3,4,51,2,3,4,5}。

  • 操作 222 111 555 :区间 [1,5][1,5][1,5] 的平均数为 333 ,方差为 (1−3)2+(2−3)2+(3−3)2+(4−3)2+(5−3)25=2\frac{(1-3)^2+(2-3)^2+(3-3)^2+(4-3)^2+(5-3)^2}{5}=25(1−3)2+(2−3)2+(3−3)2+(4−3)2+(5−3)2​=2;

  • 操作 111 333 101010 :将三名员工工资修改为 101010 ;

  • 操作 222 111 555 :区间 [1,5][1,5][1,5] 的平均数为 4.44.44.4 ,方差为 (1−4.4)2+(2−4.4)2+(10−4.4)2+(4−4.4)2+(5−4.4)25=9.84\frac{(1-4.4)^2+(2-4.4)^2+(10-4.4)^2+(4-4.4)^2+(5-4.4)^2}{5}=9.845(1−4.4)2+(2−4.4)2+(10−4.4)2+(4−4.4)2+(5−4.4)2​=9.84

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 53ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?