编程题
分考场2019 ### 题目描述 **问题背景** 古语有云:春风得意马蹄疾,一日看尽长安花。 当然在一场考试中所有人都春风得意马蹄疾是不可能的,尤其是碰到一些毒瘤出题人的时候。 **问题描述** 又到了每月一次的月考,又是 xf 老师出题。 上一次 xf 老师出的题太毒瘤了,平均分只有 40 多,同学们都非常不满意,毕竟别的科的平均分都是 80 多。 这次 xf 为了不被同学们寄刀片,想了一个办法:只公布所有考场的平均分的平均分。这样他就可以通过调整考场的分配方式,使得平均分显得高。(每个考场都可以容纳无限人) 每次考试也不是所有同学都参加的,只有学号在 $[l,r]$ 这个区间中的同学会参加。 他想知道对于每次考试,他调整过考场后,所有考场的平均分的平均分的最大值。 当然,同学们也可能会努力学习或整日颓废使成绩发生改变。 ### 输入描述 输入的第一行包含一个整数 $n$。 第二行包含 $n$ 个整数,第 $i$ 个数 $v_i$,表示开始时每个同学的成绩。 第三行包含一个整数 $q$,表示有 $q$ 次操作。 之后 $q$ 行,每行描述一个操作,第一个数表示操作类型。 如果操作为 $1\ p\ x$,表示学号为 $p$ 的同学分数变为 $x$。 如果操作为 $2\ l\ r\ k$, 表示把学号在 $[l,r]$ 中的同学分成 $k$ 个考场,求这 $k$ 个 考场的平均分的平均分的最大值。 其中,$n \leq 2 \times 10^5, q \leq 2 \times 10^5$, 任意时刻同学的分数 $v_i \leq 10^9, k \leq r−l+1$。 ### 输出描述 对于每个 2 操作输出一行,四舍五入保留正好 3 位小数。 ### 输入输出样例 #### 示例 > 输入 ```txt 5 5 3 4 2 1 5 2 1 4 3 1 4 8 2 3 5 3 1 2 2 2 1 3 2 ``` > 输出 ```txt 3.833 4.333 4.000 ```
查看答案
赣ICP备20007335号-2