#aBC265G. [ABC265G] 012 Inversion

[ABC265G] 012 Inversion

AT_abc265_g [ABC265G] 012 Inversion

题目描述

给定一个长度为 NN 的数列 A=(A1,,AN)A=(A_1,\ldots,A_N),其中每个元素都是 0,1,20,1,2 之一。
请依次处理 QQ 个查询。每个查询有以下两种类型之一:

  • 1 L R:输出数列 (AL,,AR)(A_L,\ldots,A_R) 的逆序对数。
  • 2 L R S T U:对于满足 LiRL\leq i\leq R 的每个 ii,如果 Ai=0A_i=0 则替换为 SS,如果 Ai=1A_i=1 则替换为 TT,如果 Ai=2A_i=2 则替换为 UU

逆序对数的定义如下:数列 B=(B1,,BM)B=(B_1,\ldots,B_M) 的逆序对数是满足 1i<jM1\leq i<j\leq MBi>BjB_i>B_j 的整数对 (i,j)(i,j) 的个数。

输入格式

输入按以下格式从标准输入给出。

NN QQ A1A_1 A2A_2 \ldots ANA_N Query1\rm Query_1 Query2\rm Query_2 \vdots QueryQ\rm Query_Q

其中,第 ii 个查询 Queryi\rm Query_i 按以下两种格式之一给出。

11 LL RR

22 LL RR SS TT UU

输出格式

请按顺序输出每个第 11 类查询的答案,每个答案占一行。

输入输出样例 #1

输入 #1

5 3
2 0 2 1 0
1 2 5
2 2 4 2 1 0
1 2 5

输出 #1

3
4

输入输出样例 #2

输入 #2

3 3
0 1 2
1 1 1
2 1 3 0 0 0
1 1 3

输出 #2

0
0

说明/提示

数据范围

  • 1N1051\leq N\leq 10^5
  • 0Ai20\leq A_i\leq 2
  • 1Q1051\leq Q\leq 10^5
  • 对于每个查询,1LRN1\leq L\leq R\leq N
  • 对于第 22 类查询,0S,T,U20\leq S,T,U\leq 2
  • 输入中的所有值均为整数

样例说明 1

初始时 A=(2,0,2,1,0)A=(2,0,2,1,0)

  • 11 个查询时,(A2,A3,A4,A5)=(0,2,1,0)(A_2,A_3,A_4,A_5)=(0,2,1,0) 的逆序对数为 33
  • 处理第 22 个查询后,A=(2,2,0,1,0)A=(2,2,0,1,0)
  • 33 个查询时,(A2,A3,A4,A5)=(2,0,1,0)(A_2,A_3,A_4,A_5)=(2,0,1,0) 的逆序对数为 44

由 ChatGPT 4.1 翻译