Files
hanyixuanten 6e8778f275
Check cpp / md pair / Check md headers (push) Successful in 3s
new file: P3373.cpp
2026-10-28 11:35:01 +00:00

66 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P3373 【模板】线段树 2
## 题目描述
如题,已知一个数列 $a$,你需要进行下面三种操作:
- 将某区间每一个数乘上 $x$;
- 将某区间每一个数加上 $x$;
- 求出某区间每一个数的和。
## 输入格式
第一行包含三个整数 $n,q,m$,分别表示该数列数字的个数、操作的总个数和模数。
第二行包含 $n$ 个用空格分隔的整数,其中第 $i$ 个数字表示数列第 $i$ 项的初始值 $a_i$。
接下来 $q$ 行每行包含若干个整数,表示一个操作,具体如下:
操作 $1$: 格式:`1 x y k` 含义:将区间 $[x,y]$ 内每个数乘上 $k$。
操作 $2$: 格式:`2 x y k` 含义:将区间 $[x,y]$ 内每个数加上 $k$。
操作 $3$: 格式:`3 x y` 含义:输出区间 $[x,y]$ 内每个数的和对 $m$ 取模所得的结果。
## 输出格式
输出包含若干行整数,即为所有操作 $3$ 的结果。
## 输入输出样例 #1
### 输入 #1
```
5 5 38
1 5 4 2 3
2 1 4 1
3 2 5
1 2 4 2
2 3 5 5
3 1 4
```
### 输出 #1
```
17
2
```
## 说明/提示
【数据范围】
对于 $30\%$ 的数据:$n \le 8$,$q \le 10$。
对于 $70\%$ 的数据:$n \le 10^3 $,$q \le 10^4$。
对于 $100\%$ 的数据:$1 \le n \le 10^5$,$1 \le q \le 10^5,1\le a_i,k\le 10^4$。
除样例外,$m = 571373$。
(数据已经过加强 ^\_^)
样例说明:
![](https://cdn.luogu.com.cn/upload/pic/2255.png)
故输出应为 $17$、$2$($40 \bmod 38 = 2$)。