AT_abc265_g [ABC265G] 012 Inversion
题目描述
给定一个长度为 $N$ 的数列 $A=(A_1,\ldots,A_N)$,其中每个元素都是 $0,1,2$ 之一。
请依次处理 $Q$ 个查询。每个查询有以下两种类型之一:
- `1 L R`:输出数列 $(A_L,\ldots,A_R)$ 的逆序对数。
- `2 L R S T U`:对于满足 $L\leq i\leq R$ 的每个 $i$,如果 $A_i=0$ 则替换为 $S$,如果 $A_i=1$ 则替换为 $T$,如果 $A_i=2$ 则替换为 $U$。
逆序对数的定义如下:数列 $B=(B_1,\ldots,B_M)$ 的逆序对数是满足 $1\leq iB_j$ 的整数对 $(i,j)$ 的个数。
输入格式
输入按以下格式从标准输入给出。
> $N$ $Q$ $A_1$ $A_2$ $\ldots$ $A_N$ $\rm Query_1$ $\rm Query_2$ $\vdots$ $\rm Query_Q$
其中,第 $i$ 个查询 $\rm Query_i$ 按以下两种格式之一给出。
> $1$ $L$ $R$
> $2$ $L$ $R$ $S$ $T$ $U$
输出格式
请按顺序输出每个第 $1$ 类查询的答案,每个答案占一行。
说明/提示
### 数据范围
- $1\leq N\leq 10^5$
- $0\leq A_i\leq 2$
- $1\leq Q\leq 10^5$
- 对于每个查询,$1\leq L\leq R\leq N$
- 对于第 $2$ 类查询,$0\leq S,T,U\leq 2$
- 输入中的所有值均为整数
### 样例说明 1
初始时 $A=(2,0,2,1,0)$。
- 第 $1$ 个查询时,$(A_2,A_3,A_4,A_5)=(0,2,1,0)$ 的逆序对数为 $3$。
- 处理第 $2$ 个查询后,$A=(2,2,0,1,0)$。
- 第 $3$ 个查询时,$(A_2,A_3,A_4,A_5)=(2,0,1,0)$ 的逆序对数为 $4$。
由 ChatGPT 4.1 翻译