#ABC265G. 012 逆序对

012 逆序对

012 逆序对

题目描述

给定一个长度为 NN 的序列 A=(A1,…,AN)A=(A_1,\ldots,A_N),每个元素为 00、11 或 22。

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

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

什么是逆序对数? 序列 B=(B1,…,BM)B = (B_1, \ldots, B_M) 的逆序对数,是满足 1≤i<j≤M1 \le i \lt j \le M 且 Bi>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

数据范围

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