#ABC265G. 012 逆序对

012 逆序对

012 逆序对

题目描述

给定一个长度为 NN 的序列 A=(A1,,AN)A=(A_1,\ldots,A_N),每个元素为 001122

按顺序处理 QQ 个查询。每个查询为以下两种类型之一:

  • 1 L R:输出序列 (AL,,AR)(A_L,\ldots,A_R) 的逆序对数。
  • 2 L R S T U:对于满足 LiRL \le i \le R 的每个 ii,若 AiA_i00,则替换为 SS;若 AiA_i11,则替换为 TT;若 AiA_i22,则替换为 UU

什么是逆序对数? 序列 B=(B1,,BM)B = (B_1, \ldots, B_M) 的逆序对数,是满足 1i<jM1 \le i \lt j \le MBi>BjB_i \gt B_j 的整数对 (i,j)(i, j) 的个数。

输入格式

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

NN QQ
A1A_1 A2A_2 \ldots ANA_N
Query1\mathrm{Query}_1
Query2\mathrm{Query}_2
\vdots
QueryQ\mathrm{Query}_Q

其中 Queryi\mathrm{Query}_i 表示第 ii 个查询,格式为以下之一:

11 LL RR

22 LL RR SS TT UU

输出格式

按给定顺序输出所有第一类查询的回答,每行一个。

样例

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

初始时,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

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

数据范围

  • 1N1051 \le N \le 10^5
  • 0Ai20 \le A_i \le 2
  • 1Q1051 \le Q \le 10^5
  • 在每个查询中,1LRN1 \le L \le R \le N
  • 在第二类查询中,0S,T,U20 \le S,T,U \le 2
  • 输入中的所有值均为整数
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
2812
类型
传统题
Time Limit
5000ms
Memory Limit
1024MiB
上传者
标签