P3948 数据结构

题目背景

**引言** 数据结构学的好,未来工作没烦恼。 ![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999\_10000&sec=1508946101936&di=0c08b703e466d2a3b2d20dd8008821fc&imgtype=0&src=http%3A%2F%2Fjoymepic.joyme.com%2Farticle%2Fuploads%2Fallimg%2F201511%2F1446516425349678.gif) Edgration 是一个喜欢乱搞数据结构的蒟蒻(以下简称edt),有一天,他作死想去刁难一下 dalao: edt 想求一种数据结构,使得可以实现区间加,求出某一区间大于 $k$ 的元素的个数。 dalao1:sb 线段树。 dalao2:sb 分块。 dalao3:sb 平衡树。 edt: 不行,那就加上取模,求区间取膜 mod 后大于 MIN 小于 MAX 的元素个数。 dalao1:线段树&……¥#&……%……&\*&%¥。 dalao2:sb 分块 &%¥……%#¥#&……&\*。 dalao3:*&……%&¥ LCT 维护 SBT 水题 &……%&……%。 edt:那不仅取模,每个数乘上数组下标再取模。 dalao:¥%¥¥&*(#¥% 叽里呱啦叽里呱啦。 edt:不行,在把取模的值丢到一棵树上,维护一棵仙人掌乘积方差的最小极差。 dalao:替罪羊树上用 sb 块状链表维护 Toptree 上的最小费用最大流和可持久化仙人掌,算出来在基尔霍夫矩阵中反演后跑一遍 fft 维护的插头 DP 就好了,给我三分钟轻松水过。 edt:mmp。

题目描述

蒟蒻 Edt 把这个问题交给了你—— 一个精通数据结构的大犇,由于是第一题,这个题没那么难。 edt 现在对于题目进行了如下的简化: 最开始的数组每个元素都是 $0$。 给出 $\text{n},\text{opt},\text{mod},\text{min},\text{max}$ 在 `int` 范围内。 操作 $A,Q$: `A L R X` 表示把 $[L,R]$ 这个区间加上 $X$。 **(数组的从 $L$ 到 $R$ 的每个元素都加上 $X$)** `Q L R` 表示询问 $[L,R]$ 这个区间中元素 $T$ 满足 $\text{min}\le (T\times i\ mod\ \text{mod})\le \text{max}$ 的 $T$ 这样的数的个数($i$ 是数组下标)。 **(元素的值 $\times$ 数组下标对 $\text{mod}$ 取模的值在 $\min$ 到 $\max$ 范围内)** 由于 edt 请来了一位非三次元的仓鼠,他帮你用延后了部分问题,将这些询问打入了混乱时空,你的询问操作不会超过 $1000$ 次,不幸的是,对于延后的询问操作可能有很多次(小于 $1\times10^7$ 次),但是保证这些延后的询问操作之后不会再次有修改操作(就是在最后会有很多次询问,但不会进行修改)。

输入格式

给出 $\text{n},\text{opt},\text{mod},\text{min},\text{max}$ 分别表示序列大小,操作次数,取膜,最小值,最大值。 下面 $\text{opt}$ 行,给出: `A L R X` 表示区间加,保证 $\text{X}$ 在 `int` 范围内($X

输出格式

每行对于每个 $Q$ 操作输出 $Q$ 个数表示每次询问的值, 下面 $\text{Final}$ 行表示 $\text{Final}$ 个询问的值。

说明/提示

## 样例说明 给出样例 1 的解释: 样例 1 中,$a$ 数组修改为$5,5,5$,每个 $a_i\times i\ mod\ 4$ 的值为 $1,2,3$。 对于 $\text{Final}$ 的询问,询问 $[1,3]$ 中大于等于 $0$ 小于等于 $2$ 的个数为 $2$ 个。 剩下的询问类似。 ## 题目说明 **注意**: ### 1.关于负数取模问题,请以 c++ 的向 $0$ 取整为标准,即如: [ $ -7 \bmod 3 = -1 $ ] [ $ 7 \bmod 3 = 1 $ ] ### 2.一共会有 50 个测试点,每个点分值为 2 分。 因为测试点数较多,请 OIer 们自觉地不要故意多次提交来卡评测机,出题人 edt 在这里表示由衷的感谢。 ## 数据范围 如果你不能做对所有点,请尝试获得部分分,所有数据都是随机生成。 ![](https://cdn.luogu.com.cn/upload/image_hosting/whf39g4d.png)