传送门

生成函数好题。

题意简述:求nnn个点的树的叶子数期望值。


思路:

考虑fnf_nfn​表示nnn个节点的树的数量。

所以有递推式f0=1,fn=∑i=0n−1fifn−1−i(n>0)f_0=1,f_n=\sum_{i=0}^{n-1}f_if_{n-1-i}(n>0)f0​=1,fn​=∑i=0n−1​fi​fn−1−i​(n>0)

正是一个卷积的形式。

那么fnf_nfn​的生成函数F(x)=xF2(x)+1F(x)=xF^2(x)+1F(x)=xF2(x)+1 注意要填上f0f_0f0​

同理,考虑gng_ngn​表示nnn个节点的树的叶子数总数。

有递推式g0=0,g1=1,gn=2∑i=0n−1fign−i−1(n>1)g_0=0,g_1=1,g_n=2\sum_{i=0}^{n-1}f_ig_{n-i-1}(n>1)g0​=0,g1​=1,gn​=2∑i=0n−1​fi​gn−i−1​(n>1)

所以gng_ngn​的生成函数G(x)=2xF(x)G(x)+xG(x)=2xF(x)G(x)+xG(x)=2xF(x)G(x)+x 注意要填上g1g_1g1​

然后F(x)=xF2(x)+1F(x)=xF^2(x)+1F(x)=xF2(x)+1

<=>xF2(x)−F(x)+1=0xF^2(x)-F(x)+1=0xF2(x)−F(x)+1=0

<=>F(x)=1−1−4x2xF(x)=\frac{1-\sqrt{1-4x}}{2x}F(x)=2x1−1−4x​​ 不取1+1−4x2x\frac{1+\sqrt{1-4x}}{2x}2x1+1−4x​​是因为它不能向0收敛

G(x)=x1−2xF(x)=x1−4xG(x)=\frac x{1-2xF(x)}=\frac x{\sqrt{1-4x}}G(x)=1−2xF(x)x​=1−4x​x​

然后我们对xF(x)xF(x)xF(x)求导:(xF(x))′=11−4x=G(x)x(xF(x))'=\frac1{\sqrt{1-4x}}=\frac{G(x)}x(xF(x))′=1−4x​1​=xG(x)​

而对于xF(x)xF(x)xF(x)第nnn项fnxn+1f_nx^{n+1}fn​xn+1求导之后会变成fn(n+1)xnf_n(n+1)x^nfn​(n+1)xn等式右边:gn+1xn+1x=gn+1xn\frac{g_{n+1}x^{n+1}}x=g_{n+1}x^nxgn+1​xn+1​=gn+1​xn,那么gn+1=fn(n+1)g_{n+1}=f_n(n+1)gn+1​=fn​(n+1)

我们令答案的函数是A(x)=∑i=0∞pnxnA(x)=\sum_{i=0}^{\infty}p_nx^nA(x)=∑i=0∞​pn​xn

那么gn=fn−1n=pnfn=&gt;pn=fn−1nfng_n=f_{n-1}n=p_nf_n=&gt;p_n=\frac{f_{n-1}}{nf_n}gn​=fn−1​n=pn​fn​=>pn​=nfn​fn−1​​

仔细观察会发现fnf_nfn​是卡特兰数,然后带入就做完了。

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    double n;
    return scanf("%lf",&n),printf("%.9lf",n*(n+1)/(4*n-2)),0;
}

2018.12.31 bzoj4001: [TJOI2015]概率论(生成函数)的更多相关文章

  1. 2018.12.31 bzoj3771: Triple(生成函数+fft+容斥原理)

    传送门 生成函数经典题. 题意简述:给出nnn个数,可以从中选1/2/31/2/31/2/3个,问所有可能的和对应的方案数. 思路: 令A(x),B(x),C(x)A(x),B(x),C(x)A(x) ...

  2. bzoj4001: [TJOI2015]概率论

    题目链接 bzoj4001: [TJOI2015]概率论 题解 生成函数+求导 设\(g(n)\)表示有\(n\)个节点的二叉树的个数,\(g(0) = 1\) 设\(f(x)\)表示\(n\)个节点 ...

  3. BZOJ4001 TJOI2015概率论(生成函数+卡特兰数)

    设f(n)为n个节点的二叉树个数,g(n)为n个节点的二叉树的叶子数量之和.则答案为g(n)/f(n). 显然f(n)为卡特兰数.有递推式f(n)=Σf(i)f(n-i-1) (i=0~n-1). 类 ...

  4. 2018.12.31 bzoj3992: [SDOI2015]序列统计(生成函数+ntt+快速幂)

    传送门 生成函数简单题. 题意:给出一个集合A={a1,a2,...as}A=\{a_1,a_2,...a_s\}A={a1​,a2​,...as​},所有数都在[0,m−1][0,m-1][0,m− ...

  5. 【bzoj4001】[TJOI2015]概率论 生成函数+导数

    题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数.要求误差小于1e-9 样例输入 1 样例输出 1.000000000 题解 生成函数+导数 先考虑节点个数为$n ...

  6. BZOJ4001 [TJOI2015]概率论 【生成函数】

    题目链接 BZOJ4001 题解 Miskcoo 太神了,orz #include<algorithm> #include<iostream> #include<cstr ...

  7. 2018.12.31 NOIP训练 偶数个5(简单数论)

    传送门 对于出题人zxyoizxyoizxyoi先%\%%为敬题目需要龟速乘差评. 题意简述:5e55e55e5组数据,给出n,请你求出所有n位数中有偶数个5的有多少,n≤1e18n\le1e18n≤ ...

  8. 2018.12.30 bzoj3028: 食物(生成函数)

    传送门 生成函数模板题. 我们直接把每种食物的生成函数列出来: 承德汉堡:1+x2+x4+...=11−x21+x^2+x^4+...=\frac 1{1-x^2}1+x2+x4+...=1−x21​ ...

  9. 2018.12.30 poj3734 Blocks(生成函数)

    传送门 生成函数入门题. 按照题意构造函数: 对于限定必须是出现偶数次的颜色:1+x22!+x44!+...=ex+e−x21+\frac {x^2}{2!}+\frac {x^4}{4!}+...= ...

随机推荐

  1. 205. Isomorphic Strings (Map)

    Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...

  2. c#控件的动画显示效果

    1.  缘由: 项目中任务完成有个提示,需要以动画效果展示,其效果当如下图: 此为老项目为Delphi所写,改用c#实现,此效果做些设计.本也不难,小技而已,但为易于扩展,写了个静态类实现. 2. A ...

  3. ThreadLocal ——android消息机制handler在非主线程创建not called Looper.prepare() 错误的原因

    引用自:https://www.jianshu.com/p/a8fa72e708d3 引出: 使用Handler的时候,其必须要跟一个Looper绑定.在UI线程可直接初始化Handler来使用.但是 ...

  4. 【教程】教你解决“Windows 资源保护找到了损坏文件但无法修复其中某些文件”的问题【转载】

    转载:http://www.cystc.org/?p=2827 很多人都会用sfc /scannow来解决系统文件损坏的问题,但有时也会遇到连sfc都无法修复的情况,最常见的就是出现“Windows ...

  5. java的几个日志框架log4j、logback、common-logging

    开发工作中每个系统都需要记录日志,常见的日志工具有log4j(用的最多),slf4j,commons-loging,以及最近比较流行的logback 以前只是在项目中用log4j,更多的是参考下配置文 ...

  6. jQuery Dom对象操作 增、删、改、复制、包裹

    1. 增(插入) 内部插入 //向每个匹配的元素内部追加内容,为最后一个子元素$('.violet').append('<div></div>'); //把所有匹配的元素追加到 ...

  7. vs 调试 IE显示“无法显示该网页

    在用VS2010调试网站的时候,突然页面不能正常显示了,IE显示“无法显示该网页”.症状一: IE地址栏里面显示的端口号和桌面任务栏右下角“ASP.NET Development Server”的端口 ...

  8. Hadoop(一) HADOOP简介

    1. HADOOP背景介绍 1.1 什么是HADOOP HADOOP是apache旗下的一套开源软件平台 HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 H ...

  9. jQuery的节点选择

    jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(&q ...

  10. linux学习第四天 (Linux就该这么学)2018年11月16日

    今天主要讲了 管道符,重写向与环境变量 输入输出重写向 标准输出重写向 (标准,覆盖,错误) > 将标准输出重写向到一个文件中 >> 追加到文件 2>错误输出重定向 2> ...