bzoj#P1483. [HNOI2009]梦幻布丁

[HNOI2009]梦幻布丁

题目描述

NN 个布丁摆成一行,进行 MM 次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为 1,2,2,11,2,2,1 的四个布丁一共有 33 段颜色。

输入格式

第一行给出 N,MN,M 表示布丁的个数和好友的操作次数。

第二行 NN 个数 A1,A2AnA_1,A_2 \dots A_n 表示第 ii 个布丁的颜色。

从第三行起有 MM 行,对于每个操作,若第一个数字是 11 表示要对颜色进行改变,其后的两个整数 X,YX,Y 表示将所有颜色为 XX 的变为 YYXX 可能等于 YY

若第一个数字为 22 表示要进行询问当前有多少段颜色,这时你应该输出一个整数 00

输出格式

针对第二类操作即询问,依次输出当前有多少段颜色。

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

数据范围

1n, m105, 1ai, x, y1061 \le n,~m \le 10^5,~1 \le a_i,~x,~y \le 10^6