#3541. 花朵(flowers)

题意

有一个n个点的树,在其中选m个点,要求这m个点两两不能相邻,价值为这m个点的权值和,求所有方案的价值和。

范围

n<=8e4
部分分:一条链

题解

显然有O( n 2 n^{2} n2)的暴力DP,记 f [ i ] [ j ] [ 0 / 1 ] f[i][j][0/1] f[i][j][0/1] i i i的子树选 j j j个, i i i是否选的价值和。
考虑一条链,每一个点可看作一个生成函数,用分治+ntt可做。
考虑拓展到树上,因为一条链可做,故重剖一下,若对于每个点已经记录了它及它的轻子树的值,合并重链直接分治+ntt即可。对于记轻子树的值,也分治+ntt合并(在这之前每颗轻子树的信息要合并到轻子树根上,递归下去即可),这样利用重剖的性质,对于每个点,到根的路径上只会经过不超过log条轻边,每次的贡献是 l o g 2 log^{2} log2,并且不满,对于8e4的范围可过。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值