[Codeforces 438E]The Child and Binary Tree(生成函数 + 多项式开平方)

Address

Meaning

  • 给定一个 n n n 元正整数集合 S S S
  • 对于任意的 1 ≤ i ≤ m 1\le i\le m 1im
  • 求有多少棵不同(形态不同或点权不同)的点带权无标号有根二叉树的所有点权和为 i i i (所有的点权都在集合 S S S 内)
  • 1 ≤ n , m , S 内 的 元 素 ≤ 1 0 5 1\le n,m,S内的元素\le10^5 1n,m,S105

Solution

  • 先列出 DP 式子: f [ i ] f[i] f[i] 表示点权和为 i i i 的方案数, f [ 0 ] = 1 f[0]=1 f[0]=1
  • f [ i ] = ∑ k ∈ S , k ≤ i ∑ j = 0 i − k f [ j ] f [ i − k − j ] f[i]=\sum_{k\in S,k\le i}\sum_{j=0}^{i-k}f[j]f[i-k-j] f[i]=kS,kij=0ikf[j]f[ikj]
  • f f f 的生成函数为 F ( x ) F(x) F(x) ,则
  • f [ i ] = ∑ k ∈ S , k ≤ i [ x i − k ] F ( x ) 2 f[i]=\sum_{k\in S,k\le i}[x^{i-k}]F(x)^2 f[i]=kS,ki[xik]F(x)2
  • 再设生成函数
  • G ( x ) = ∑ k ∈ S x k G(x)=\sum_{k\in S}x^k G(x)=kSxk
  • f [ i ] = ∑ k = 1 i [ x k ] G ( x ) [ x i − k ] F ( x ) 2 = [ x i ] G ( x ) F ( x ) 2 f[i]=\sum_{k=1}^i[x^k]G(x)[x^{i-k}]F(x)^2=[x^i]G(x)F(x)^2 f[i]=k=1i
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Raize Components是Delphi和C++Builder下的用户界面组件,拥有超过125种通用原生VCL控件集合。此次发布的Raize Components v6.1版本新增加IDE支持和帮助文档,以及其他一些组件更新。 Raize组件, Delphi和C + + Builder的是一个用户界面的设计系统。在它的中心是一个集合超过125个通用的原生VCL控件。内置技术的基础上,第一次创建超过15年前,这些高品质的组件为开发人员提供无与伦比的力量和灵活性而不牺牲易于使用。除了核心的控件集, Raize组件包括超过100个组件设计师专注于简化用户界面开发。现在比以往任何时候都多,开发人员使用Raize组件来构建复杂的用户界面,在更短的时间内,以较少的努力。 Raize组件6的主要焦点是在新的VCL功能已被添加到Embarcadero公司的RAD Studio的。具体来说, 64位的VCL支持和很酷的新VCL样式支持。不同于其他版本的RAD Studio只需重新编译现有代码库提供了一套新的日间护理单位和包,有很多低层次的变化VCL的。例如,许多控件顺利迁移到64位,但许多其他需要低层次的修改。此外, Raize组件的每一个控制受新的VCL样式。每个控件的显示代码,需要进行大幅修改,全力支持VCL样式时,他们。已经做了大量的工作,但我们确信你会发现最终的结果真的很酷! 还有其他的改进和修正Raize组件6 ,但64位和VCL样式的支持是主要的新功能。 Raize组件6肯定利用RAD Studio和得到最RC6的,你需要的RAD Studio XE2或更高版本。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值