链接:https://ac.nowcoder.com/acm/contest/904/E
来源:牛客网
题目描述
DongDong是个喜欢数颜色的女孩子,她已经熟练地掌握了在序列上数颜色的操作,现在她开始学习如何在树上数颜色,现在给定一个n个点,n-1条边的树形图(视1号店为根),每个点有一个颜色,每次询问以x为根的子树中有多少种不同的颜色,DongDong轻松地解决了这个问题,但她想考考会编程的你。
输入描述:
第一行两个整数n,m 第二行n个整数,表示每个点的颜色 接下来n-1行每行u,v,表示存在一条从u到v的双向边(保证最终图形是树形图) 2<=n<=100000,1<=m,color<=n,
输出描述:
共m行:每行输出相应询问的答案
示例1
输入
4 3 1 1 2 3 1 2 2 3 1 4 1 2 4
输出
3 2 1
题解:
刚开始用bitset去维护每个点出现的颜色的集合(有哪个颜色哪个二进制位就是1),dfs的时候进行或运算维护就可以了,然后超内存了。https://paste.ubuntu.com/p/NwfHgtJZYJ/
然后我看见讨论区有人用set过了,每个节点用一个set去维护,我算了一下&#