%%%imortalCO
题目描述!
有一个n
个结点的树,每个节点有权值v
,有以下操作:
Change x y
,将编号为x
的结点的权值修改为y
。Query k
,询问有多少棵T
的非空连通子树,满足其价值恰好为k
。
数据规模 n,m <= 30000,v <= 128且m为2的幂次
算法讨论
考虑没有修改操作, 我们可以定以下状态
转移的时候就是一个背包
直接处理是$O(n128^2)$ 的,利用$FWT$优化,预先求出所有数组的点值表示,最后$FWT$回来,可以做到$O((n+log128)*128)$
那么对于原问题,也可使用。。
额这个我写不下去了。。我发现我想写的跟ImmortalCO大佬的一模一样。。还是去看大佬写的吧
代码:
1 |
|