小明最近对树这个知识点很感兴趣,对于一棵n个节点的树,最初有结点都有颜色,小明想改变某些路径上的颜色,有时还要统计某路径上
颜色段的种类,比如"2231"就是3种颜色段,共进行了q条操作,操作分成2类
将路径a到b的各个节点染色成d;
统计路径a到b的颜色段数。
第一行包含2个正整数n和q,分别表示结点数和操作数;
第二行包含n个正整数,为n个结点的初始颜色 。
下面 n-1行每行包含两个整数u和v,表示u和v之间有一条无向边。
下面 行每行描述一个操作:
“B a b d”表示这是修改树上节点颜色操作,把路径a到b所有点(包括a和b)都染成颜色d;
“Q a b”表示这是查询操作,询问节点a到节点b(包括a和b)路径上的颜色段数。
6 5
2 2 1 2 1 1
1 2
1 3
2 4
2 5
2 6
Q 3 5
B 2 1 1
Q 3 5
B 5 1 2
Q 3 5
3
1
2