A4999 | 统计……?
时间限制3s
内存限制256MB
通过 / 提交0/0
题目描述
在学过平均数、中位数、众数后,数学老师交给 cjdst 一个任务,要求他用代码实现以下功能。
给定两个长度为 $N$ 的数组 $A,B$。
这个代码需要执行 $Q$ 次操作,第 $i$ 次操作的类型为 $T_i$:
- $T_i=1$:给定三个数 $L_i,R_i,X_i$,将 $A$ 数组中 $[L_i,R_i]$ 的所有数的值增加 $X_i$。
- $T_i=2$:给定两个数 $L_i,R_i$,以数组 $B$ 中 $[L_i,R_i]$ 的元素为权,查询 $A$ 数组中 $[L_i,R_i]$ 的加权平均数,即
$$ \dfrac{\sum_{j=L_i}^{R_i} A_j\times B_j}{\sum_{j=L_i}^{R_i} B_j} $$
为避免浮点数精度问题,请将结果向下取整。
请你帮帮 cjdst。
给定两个长度为 $N$ 的数组 $A,B$。
这个代码需要执行 $Q$ 次操作,第 $i$ 次操作的类型为 $T_i$:
- $T_i=1$:给定三个数 $L_i,R_i,X_i$,将 $A$ 数组中 $[L_i,R_i]$ 的所有数的值增加 $X_i$。
- $T_i=2$:给定两个数 $L_i,R_i$,以数组 $B$ 中 $[L_i,R_i]$ 的元素为权,查询 $A$ 数组中 $[L_i,R_i]$ 的加权平均数,即
$$ \dfrac{\sum_{j=L_i}^{R_i} A_j\times B_j}{\sum_{j=L_i}^{R_i} B_j} $$
为避免浮点数精度问题,请将结果向下取整。
请你帮帮 cjdst。
输入格式
第一行两个正整数 $N,Q$。
第二行 $N$ 个正整数 $A_i$。
第三行 $N$ 个正整数 $B_i$。
接下来 $Q$ 行,每行若干个正整数,可能是以下的情况:
这表示 $T_i=1$ 的情况。
这表示 $T_i=2$ 的情况。
第二行 $N$ 个正整数 $A_i$。
第三行 $N$ 个正整数 $B_i$。
接下来 $Q$ 行,每行若干个正整数,可能是以下的情况:
$\tt{1\text{ }L_i\text{ }R_i\text{ }X_i}$
这表示 $T_i=1$ 的情况。
$\tt{2\text{ }L_i\text{ }R_i}$
这表示 $T_i=2$ 的情况。
输出格式
对于每个 $T_i=2$ 的查询,在单独的一行输出答案。
输入输出样例
输入 #1
5 5 4 2 4 5 1 1 2 4 4 5 1 1 5 1 2 3 4 2 2 5 1 1 3 3 2 4 4
输出 #1
5 4 6
样例解释
1.$\text{ }$将 $A_1,A_2,A_3,A_4,A_5$ 的值增加 $1$,此时数组 $A=(5,3,5,6,2)$。
2.$\text{ }$以 $(4,4)$ 为权,$(5,6$) 的加权平均数为 $\dfrac{5\times4+6\times4}{4+4}=5.5$。
3.$\text{ }$以 $(2,4,4,5)$ 为权,$(3,5,6,2)$ 的加权平均数为 $\dfrac{3\times2+5\times4+6\times4+2\times5}{2+4+4+5}=4$。
4.$\text{ }$将 $A_1,A_2,A_3$ 的值增加 $3$,此时数组 $A=(8,5,8,6,2)$。
5.$\text{ }$以 $(4)$ 为权,$(6)$ 的加权平均数为 $\dfrac{6\times 4}{4}=6$。
数据说明
样例解释
1.$\text{ }$将 $A_1,A_2,A_3,A_4,A_5$ 的值增加 $1$,此时数组 $A=(5,3,5,6,2)$。
2.$\text{ }$以 $(4,4)$ 为权,$(5,6$) 的加权平均数为 $\dfrac{5\times4+6\times4}{4+4}=5.5$。
3.$\text{ }$以 $(2,4,4,5)$ 为权,$(3,5,6,2)$ 的加权平均数为 $\dfrac{3\times2+5\times4+6\times4+2\times5}{2+4+4+5}=4$。
4.$\text{ }$将 $A_1,A_2,A_3$ 的值增加 $3$,此时数组 $A=(8,5,8,6,2)$。
5.$\text{ }$以 $(4)$ 为权,$(6)$ 的加权平均数为 $\dfrac{6\times 4}{4}=6$。
数据说明
保证 $1\le L_i,R_i\le N$。
以下是测试点信息:
| 测试点 | $N,Q$ | $A_i,B_i,X_i$ | 性质 |
|---|---|---|---|
| $1$ | $\le 10$ | $\le 10$ | 数据为样例#1 |
| $2\sim 5$ | $\le 10^3$ | $\le 10$ | 无 |
| $6$ | $\le 10^5$ | $\le 10^3$ | A |
| $7$ | $\le 10^5$ | $\le 10^3$ | B |
| $8$ | $\le 10^5$ | $\le 10^3$ | C |
| $9$ | $\le 10^5$ | $\le 10^3$ | D |
| $10,11$ | $\le 10^5$ | $\le 10^3$ | 无 |
| $12$ | $\le 5\times 10^5$ | $\le 10^3$ | B |
| $13$ | $\le 5\times 10^5$ | $\le 10^3$ | C |
| $14$ | $\le 5\times 10^5$ | $\le 10^3$ | D |
| $15\sim 25$ | $\le 5\times 10^5$ | $\le 10^3$ | 无 |
性质 A:保证 $R_i-L_i\lt 10^3$。
性质 B:保证不会出现 $T_i=1$ 的情况。
性质 C:保证 $T_i=2$ 的情况出现的次数小于等于 $5$。
性质 D:保证所有的 $B_i$ 都相等。
本题输入输出量较大,建议使用较快的IO方式,如:
```cpp
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
```
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?