牛客Wannafly挑战赛19 C多彩的树 (状压 + DFS + 容斥)

牛客Wannafly挑战赛19 C多彩的树
题意:有一棵树包含 $N$ 个节点。节点总共有 $K$ 种颜色。第 $i$ 个节点的颜色为 $A_i$。
恰好包含 $i$ 种颜色的路径数量 $F_i$。

这个恰好我们可以用容斥来做。
考虑一条条路径不方便处理,我们考虑路径就是两个块之间的任意连线。
那么我们发现颜色数小,可以状压,我们每次枚举一个集合表示当前许可进入的颜色,然后在树中DFS,DFS到的一个块里面的路径都是符合当前许可进入的颜色的,然后我们只需要进行容斥就可以计算出在某个连通块中出现恰好包含 $i$ 种颜色的路径数量。

------ 本文结束 ------