http://codeforces.com/contest/620/problem/E
C《60,n<=1e5
题意:给你n个节点的 无向有根树
给你每个节点的初始颜色ci
q次操作
操作1:1 v k 把v节点的所有子节点颜色都换成k
操作2:2 v 查询v节点的所有子节点颜色种类
先dfs跑一遍得到 一个dfs序
把每个节点涂上初始颜色, 每个节点在dfs序中的位置是in[i], 也就是update(in[i],val);
这个颜色只有60种,我们用一个int64变量来表示即可
那么每次操作1 ,我们就update线