#P17422. [ICPC 2018 Xuzhou R] Rikka with Data Structures

    ID: 19924 远端评测题 12000ms 512MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>2018线段树分块ICPC

[ICPC 2018 Xuzhou R] Rikka with Data Structures

题目描述

众所周知,Rikka 并不擅长数据结构。Yuta 对此感到担忧,于是他给 Rikka 布置了一些数据结构相关的练习任务。以下是其中之一:

Yuta 有一个包含 nn 个数的数组 AA,记为 A[1],A[2],⋯ ,A[n]A[1], A[2], \cdots, A[n]。随后他在该数组上执行 mm 次操作。操作共有三种类型:

  • 1 l r k\text{1 l r k}:对于每个满足 i∈[l,r]i \in [l, r] 的下标 ii,将 A[i]A[i] 的值改为 (A[i]+k)(A[i] + k);
  • 2 l r k\text{2 l r k}:对于每个满足 i∈[l,r]i \in [l, r] 的下标 ii,将 A[i]A[i] 的值改为 kk;
  • 3 l r x\text{3 l r x}:Yuta 想让 Rikka 统计满足 l≤y≤rl \le y \le r 且 $\max \lbrace A[\min \lbrace x, y \rbrace ], A[\min \lbrace x, y \rbrace +1], \cdots, A[\max \lbrace x, y \rbrace ] \rbrace = \max \lbrace A[x], A[y] \rbrace$ 的不同下标 yy 的数量。

这对 Rikka 来说太难了。你能帮帮她吗?

输入格式

输入包含多组测试数据,第一行包含一个整数 TT(1≤T≤2001 \le T \le 200),表示测试数据的组数。

对于每组测试数据,第一行包含两个整数 nn(1≤n≤1051 \le n \le 10^5)和 mm(1≤m≤1051 \le m \le 10^5)。

第二行包含 nn 个整数 A[1],A[2],⋯ ,A[n]A[1], A[2], \cdots, A[n](1≤A[i]≤1091 \le A[i] \le 10^9)。

接下来 mm 行,每行描述一个操作,包含四个如上所述的整数,且满足 1≤l≤r≤n1 \le l \le r \le n,1≤k≤1091 \le k \le 10^9,1≤x≤n1 \le x \le n。

输入保证至多有 1010 组测试数据满足 n>103n > 10^3 或 m>103m > 10^3。

输出格式

对于每个类型为 33 的询问操作,输出一行一个整数,表示该询问的答案。

1
10 10
1 3 2 5 2 3 1 6 4 5
3 5 7 8
3 5 7 4
1 1 5 2
3 1 10 4
3 1 10 8
2 8 8 8
3 1 10 8
3 1 10 4
2 4 8 1
3 1 2 10
3
3
10
7
10
8
2

提示

翻译由 DeepSeek V4 Pro 完成