• CF438E The Child and Binary Tree


    Description

    有长为 (n) 的正整数数列 ({c_n}) ,且 (c_n) 互异。现需构造一棵二叉树,点权均为 ({c_n}) 中的数。给定 (m),对于每个正整数 (kleq m),求点权和为 (k) 的二叉树个数。

    Solution

    容易想到先搞个递推式,然后再化简。令 (f_i) 表示权值和为 (i) 的二叉树个数,(f_0=1),其 OGF 为 (F(x)),那么对于 (mgeq 1),有

    [egin{align} f_m&=sum_{i=1}^n sum_{j=0}^{m-a_i} f_j imes f_{m-a_i-j} \ &=sum_{i=1}^n [x^{m-a_i}] F^2(x) \ &=[x^m] F^2(x) sum_{i=1}^n x^{a_i}\ end{align} ]

    (G(x)=sum_{i=1}^n x_{a_i})(f_m=[x^m]G(x)F^2(x)),又 (f_0=1),那么

    [F(x)=1+G(x)F^2(x) ]

    解得两个根

    [F_1=frac{1+sqrt{1-4G}}{2G},F_2=frac{1-sqrt{1-4G}}{2G} ]

    又要满足初始值 (f_0=1),即 (F) 泰勒展开第零项,那么

    [lim_{x o 0} F(x)=1 ]

    发现只有 (F_2) 符合条件,那么 (F=frac{1-sqrt{1-4G}}{2G})

    但是 (G(x))(g_0 eq 1),不存在逆。于是有一个很神奇的方法,即分母无理化。

    [F=frac{1-sqrt{1-4G}}{2G}=frac{2}{1+sqrt{1-4G}} ]

    于是就可以求了。

  • 相关阅读:
    Cookie、Session详解
    阿里云高速maven库
    java23种设计模式详解
    分布式和集群的区别
    2016 年 Java 优秀文章
    java任务调度
    解酒
    中医教你如何调理女性内分泌失调
    Oracle RedoLog-二进制格式分析,文件头,DML,DDL
    Oracle RedoLog-基本概念和组成
  • 原文地址:https://www.cnblogs.com/wwlwQWQ/p/14663710.html
Copyright © 2020-2023  润新知