给定一颗有n个结点的无根树和m个操作,操作有2类:
(1)将结点a到结点b路径上所有点都染上颜色。
(2)询问结点a到结点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。
请你写一个程序依次完成操作。
第一行包含2个整数n和m,分别表示结点数的操作数。
第二行包含n个正整数表示n个结点的初始颜色。
下面若干行,每行包含两个整数x和y,表示x和y之间有一条无向边。
下面若干行,每行描述一个操作:
“C a b c”表示这是一个染色操作,把结点a到结点b路径上所有点(包括a和b)都染上颜色。
“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 C 2 1 1 Q 3 5 C 5 1 2 Q 3 5
3 1 2
一本通