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)。

  类似地,左子树节点数为i时右子树有f(n-i-1)种情况,那么可以对左子树的叶子节点数之和计数,显然再乘2就是总数了。有递推式g(n)=2Σg(i)f(n-i-1) (i=0~n-1)。

  因为递推式是卷积形式,考虑生成函数。设F(x)、G(x)分别为f(n)、g(n)的生成函数(均为无穷级数)。则有F(x)=xF2(x)+1。乘x是为了给他进一位。因为f(0)=f(1)=1,只要补上x^0位上的1就好了。解得F(x)=[1±√(1-4x)]/(2x)。其中√1-4x可以用广义二项式定理计算出来,发现其每一项都是负数,于是我们取F(x)=[1-√(1-4x)]/(2x)。

  同样的道理,G(x)=2xF(x)G(x)+x。因为g(0)=0,g(1)=1,进一位后需要补上x^1位上的1。解得G(x)=x/√(1-4x)。

  有了生成函数我们可以暴推原数列了。

  

  

  

  即g(n)=C(-1/2,n-1)·(-4)n-1。这个式子得化的更好看一点。不妨展开组合数。

  

  则C(-1/2,n)=(2n)!/(2n·n!)·(-1/2)n/n!=(-1/4)n·(2n)!/n!/n!=(-1/4)n·C(2n,n)。

  g(n)=(-1/4)n-1·C(2n-2,n-1)·(-4)n-1=C(2n-2,n-1)。简直优美到爆炸!

  我们知道卡特兰数的通项公式是f(n)=C(2n,n)/(n+1)。

  那么g(n)/f(n)=[(2n-2)!/(n-1)!/(n-1)!]/[(2n)!/n!/n!/(n+1)]=n2(n+1)/(2n)/(2n-1)=n(n+1)/2(2n-1)。

  于是一句话就做完了。

#include<iostream> 
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{int x=0,f=1;char c=getchar();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f;
}
double n;
int main()
{
#ifndef ONLINE_JUDGEfreopen("bzoj4001.in","r",stdin);freopen("bzoj4001.out","w",stdout);const char LL[]="%I64d";
#elseconst char LL[]="%lld";
#endifn=read();printf("%.9lf",n*(n+1)/2/(2*n-1));return 0;
}

 

转载于:https://www.cnblogs.com/Gloid/p/9440525.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前沿|8种面部表情实时追踪,你的喜怒哀乐全被AI看穿了

来源&#xff1a;雷锋网与人类一样&#xff0c;AI也学会了“察言观色”有研究表明&#xff0c;人类在相似的社会环境下表达情感的面部表情几乎是相同的。如果一个人皱眉、嘟嘴、脸色涨红&#xff0c;你一定知道TA是在生气&#xff0c;现在AI同样能够“看穿”这一点。情感分析一…

css3 transform文字,CSS3 transform 字体模糊问题

使用 Vue Material 的 Dialog 做了一个弹出框&#xff0c;弹出框内动态绑定了几个数据&#xff0c;页面效果一出来What the fuck? 马赛克&#xff1f;Vue Material 的组件肯定没问题&#xff0c;应该自己代码哪问题&#xff0c;先把官网提供的例子在项目中运行了一下&#xff…

二分 poj 3273

题目链接&#xff1a;https://vjudge.net/problem/POJ-3273 把n个连续的数字划分成m个连续的部分&#xff0c;每个部分都有一个部分和&#xff08;这个部分所有值加起来&#xff09;&#xff0c;现在要使划分里最大的那个部分和最小。 我用的也是二分&#xff0c;用二分枚举最大…

MyBatis的配置

dao层的操作太麻烦 jdbc 连接数据库&#xff0c;释放空间什么的太烦了&#xff0c;为了简化&#xff0c;引入了MyBatis Mabatis可以简化JDBC操作&#xff0c;实现数据的持久化 Mabatis是一个ORM产品 ORM:Object Relational Mapping eg&#xff1a; person对象 p…

费曼:微积分是上帝的语言 | 书摘

莱布尼茨和牛顿&#xff0c;图片来自thegreatcoursesdaily.com来源&#xff1a; 赛先生制版编辑&#xff1a;Morgan撰文&#xff1a;史蒂夫斯托加茨&#xff08;美国康奈尔大学应用数学系教授&#xff09;没有微积分&#xff0c;我们就不会拥有手机、计算机和微波炉&#xff0c…

js纯ajax,自动完成JS类(纯JS, Ajax模式)

自动完成JS类(纯JS, Ajax模式)更新时间&#xff1a;2009年03月12日 23:51:15 作者&#xff1a;自动完成JS类&#xff0c;用户体验较好。封装成类&#xff0c;方便使用。本站一、 封装的JS文件//********************************************************//创建日期: 2009-03…

Leetcode--151. 翻转字符串里的单词

给定一个字符串&#xff0c;逐个翻转字符串中的每个单词。 示例 1&#xff1a; 输入: "the sky is blue" 输出: "blue is sky the" 示例 2&#xff1a; 输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或…

python opencv3 检测人

git&#xff1a;https://github.com/linyi0604/Computer-Vision 1 # coding:utf-82 3 import cv24 5 6 # 检测i方框 包含o方框7 def is_inside(o, i):8 ox, oy, ow, oh o9 ix, iy, iw, ih i 10 return ox > ix and ox ow < ix iw and oy oh < iy i…

朱松纯:AI从感知走向认知是必然趋势

来源&#xff1a;深度学习技术前沿1月28日&#xff0c;以"小数据、大任务"作为技术范式的强认知人工智能平台企业暗物智能科技&#xff08;以下简称“暗物智能”&#xff09;宣布&#xff0c;已于2020年年中完成5亿元人民币的A轮融资。本轮融资由赛领资本和吉富创投共…

五十个小技巧提高PHP执行效率

在项目开发过程中&#xff0c;经常遇到了一些PHP处理程序性能底下的情况&#xff0c;程序运行在centosnginx环境&#xff0c;虽然这个有很多的原因如&#xff1a;服务器本身配置&#xff0c;运行环境nginx服务&#xff0c;php-fpm配置等等&#xff0c;更多有一点仍然是PHPer没有…

statement的增删改查和动态的增删改查

一 statement的crud&#xff1a; mybatis约定&#xff1a; 输入参数parameterType和输出参数resultType&#xff0c;在形式上都只能有一个 如果输入参数&#xff1a;是简单类型(8个基本类型String)&#xff0c;则可以使用任何占位符&#xff0c;#{xxx} 如果是对象类型&…

科学家「黑进」果蝇大脑跑NLP任务,发现效率比BERT高

来源&#xff1a;机器之心最近一段时间&#xff0c;有关摩尔定律终结的讨论时常出现&#xff0c;深度学习越来越高的算力需求与芯片制造厂商们「挤牙膏」式的换代速度产生了不可调和的矛盾。对此&#xff0c;一些研究者们正在专注于常规架构的效率提升&#xff0c;也有一些研究…

配置信息的优化,类型转换器

1. 优化&#xff1a; 可以将配置信息单独放入db.properties中&#xff0c;然后再动态引入 db.properties:kv <configuration> <properties resource"db.properties"/> 引入之后&#xff0c;使用${key} 2. MyBatis全局参数 在<configuration&g…

Attention Model

参考1: https://blog.csdn.net/malefactor/article/details/50550211 attention部分实现: https://blog.csdn.net/mpk_no1/article/details/72862348转载于:https://www.cnblogs.com/ying-chease/p/9448726.html

卫星互联网行业深度报告:战火早已熊熊燃烧

来源&#xff1a;万联证券1、低轨卫星加速建设&#xff0c;协同 5G 与地面通信互补融合1.1 卫星互联网纳入新基建&#xff0c;未来蓝海无限。卫星互联网是基于卫星通信的互联网&#xff0c;通过一定数量的卫星形成规模组网&#xff0c;从而辐射 全球&#xff0c;构建具备实时信…

Leetcode--416. 分割等和子集

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2: …

LUGOU P3907 圈的异或

传送门 解题思路 其实就是找出所有的环判断&#xff0c;因为数据范围很小直接暴力做&#xff0c;注意要判断自环。 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm>using namespace std; cons…

新基建下的自动驾驶:单车智能和车路协同之争

来源&#xff1a;德勤Deloitte编辑&#xff1a;蒲蒲2020年3月&#xff0c;随着中央政治会议的正式定调&#xff0c;“新基建”&#xff0c;即新型基础设施建设&#xff0c;成为公众新焦点。4月&#xff0c;发改委明确新基建范围。在新基建涉及的细分领域中&#xff0c;5G、物联…

输入参数

输入参数&#xff1a;parameterType #{} ${}区别&#xff1a; 1. 类型为简单类型&#xff08;8个基本类型String&#xff09; #{任意值} ${value},其中的标识符只能是value #{}自动给String类型加上 ${}原样输出 但是适合动态排序&#xff08;动态字段&#xff09; s…

2038: [2009国家集训队]小Z的袜子(hose)

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 15879 Solved: 7205[Submit][Status][Discuss]Description 作为一个生活散漫的人&#xff0c;小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天&#xff0c;小…