梦幻布丁
题目来源
HNOI2009
题目描述
n个布丁摆成一行,进行m次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。
例如颜色分别为1,2,2,1的四个布丁一共有3段颜色。
输入格式
第一行两个整数n,m(1≤n,m≤105)表示布丁的个数和操作次数。
第二行n个数a1,a2,…,an(1≤ai≤106)表示第i个布丁的颜色。
接下来m行,每行描述一次操作。每行首先有一个整数op表示操作类型:
- 若op=1,则后有两个整数x,y,表示将颜色x的布丁全部变成颜色y。保证1≤x,y≤106,x可能等于y。
- 若op=2,则表示一次询问。
输出格式
针对第二类操作即询问,依次输出当前有多少段颜色。
样例输入
4 3
1 2 2 1
2
1 2 1
2
样例输出
3
1