#P51. 弱水三千,只取一瓢

弱水三千,只取一瓢

题目描述

  又到了一年春暖花开的季节,sy的种植园里种了一排 $N$ 个盆栽,标号从 $1$ 至 $N$ 。

  众所周知,sy种植盆栽是为了抵御僵尸!所以他有时候会将某个盆栽里原本种的植株铲除,然后种上新的植株。

  然后,sy有时候会向玩家询问一些奇怪的问题,答对了他会给你金币奖励,他每次会问标号从 $l$ 至 $r$ 的盆栽总计种了几种类型的盆栽?

  总而言之,有两种操作:

$1$ $l$ $r$ $x$ :表示将标号为 $l$ 至标号为 $r$ 的盆栽原本的植株铲除,统一种上种类为 $x$ 的盆栽;

$2$ $l$ $r$ :表示sy要问玩家标号从 $l$ 至 $r$ 的盆栽总计种了几种类型的植株。

输入格式

第一行,输入三个整数 $N, Q, M(1≤N,Q≤10^5; 1≤M≤64)$ 表示有 $N$ 个盆栽,有 $Q$ 次操作,盆栽的种类标号只能为 $1$ 至 $M$。

第二行,输入 $N$ 个整数 $a_1, a_2, ..., a_N (1≤a_i≤M)$ 表示标号从 $1$ 至 $N$ 的盆栽中种植的植株的种类。

接下去 $Q$ 行,每行三个整数,第一个表示操作种类 $op(1≤op≤2)$,操作满足描述,并且 $1≤l≤r≤N$ ,对于 $x$ 满足 $1≤x≤M$ 。

输出格式

对于每次操作 $2$ ,输出一个整数,表示对于查询的区间,有几种类型的植株。

样例

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

来源

2022 HGNU-SWUT暑假联合集训