【BZOJ4001】[TJOI2015] 概率论(卡特兰数)
大致题意: 问你一棵\(n\)个节点的有根二叉树叶节点的期望个数。
大致思路
看到期望,比较显然可以想到设\(num_i\)为\(i\)个节点的二叉树个数,\(tot_i\)为所有\(i\)个节点的二叉树的叶节点总数。
则答案显然为\(\frac{tot_i}{num_i}\)。
而\(num_i\)其实就是一个卡特兰数(这其实就是\(NOIP2018\)提高组初赛卷中\(T8\)的\(A\)选项改正后的结果啊),故可以得到\(num_i=(2n)!/(n+1)!/n!\)。
通过找规律可以发现\(tot_i=n\cdot num_{i-1}\)。
于是答案就是\(\frac{n\cdot num_{i-1}}{num_i}=\frac{n\cdot(2n-2)!/n!/(n-1)!}{(2n)!/(n+1)!/n!}=\frac{n}{2n(2n-1)/(n+1)/n}=\frac{n(n+1)}{4n-2}\)。
代码也十分简洁。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
scanf("%d",&n),printf("%.9lf",1.0*n*(n+1)/(4LL*n-2));//求出n(n+1)/(4n-2)
return 0;
}
【BZOJ4001】[TJOI2015] 概率论(卡特兰数)的更多相关文章
- BZOJ4001[TJOI2015]概率论——卡特兰数
题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数.要求误差小于1e-9 样例输入 1 样例输出 1.000000000 提示 1<=N<=10^9 设 ...
- BZOJ4001:[TJOI2015]概率论(卡特兰数,概率期望)
Description Input 输入一个正整数N,代表有根树的结点数 Output 输出这棵树期望的叶子节点数.要求误差小于1e-9 Sample Input 1 Sample Output 1. ...
- [TJOI2015]概率论[卡特兰数]
题意 \(n\) 个节点二叉树的叶子节点的期望个数. \(n\leq 10^9\) . 分析 实际询问可以转化为 \(n\) 个点的不同形态的二叉树的叶子节点总数. 定义 \(f_n\) 表示 \(n ...
- luoguP3978 [TJOI2015]概率论 卡特兰数
考虑分别求出$f_n, g_n$表示$n$个点的有根二叉树的数量和$n$个点的所有情况下有根二叉树的叶子结点的总数 有$f_n = \sum_{k} f_k * f_{n - 1 - k}$,因此有$ ...
- bzoj4001: [TJOI2015]概率论
题目链接 bzoj4001: [TJOI2015]概率论 题解 生成函数+求导 设\(g(n)\)表示有\(n\)个节点的二叉树的个数,\(g(0) = 1\) 设\(f(x)\)表示\(n\)个节点 ...
- 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). 类 ...
- 2018.12.31 bzoj4001: [TJOI2015]概率论(生成函数)
传送门 生成函数好题. 题意简述:求nnn个点的树的叶子数期望值. 思路: 考虑fnf_nfn表示nnn个节点的树的数量. 所以有递推式f0=1,fn=∑i=0n−1fifn−1−i(n>0) ...
- BZOJ4001 [TJOI2015]概率论 【生成函数】
题目链接 BZOJ4001 题解 Miskcoo 太神了,orz #include<algorithm> #include<iostream> #include<cstr ...
- [TJOI2015] 概率论 - Catalan数
一棵随机生成的 \(n\) 个结点的有根二叉树(所有互相不同构的形态等概率出现)的叶子节点数的期望.\(n \leq 10^9\) Solution \(n\) 个点的二叉树个数即 Catalan 数 ...
随机推荐
- 读取某文件夹下所有excel文件 python
import os import pandas as pd from sklearn import linear_model path = r'D:\新数据\每日收益率' filenames = os ...
- 最小生成树(prim和kruskal)
最小生成树(prim和kruskal) 最小生成树的最优子结构性质 设一个最小生成树是T.如果选出一个T中的一条边,分裂成的两个树T1,T2依然是它们的点集组成的最小生成树.这可以用反证法来证.反着来 ...
- Mysql实例参数优化15个主要参数讲解(原创)
1.innodb_buffer_pool_size 设置物理内存的60%-80%,反应IO吞吐的最大上限2.innodb_thread_concurrency 线程并发,设置为CPU核心数,如果等于0 ...
- 使用pods添加第三方的时候,出现ld: library not found for -lpop
ld: library not found for -lpop 错误,是在使用pods添加第三方的时候,出现的编译错误,同时伴随着的是error: linker command failed with ...
- 分层图最短路【bzoj2834】: 回家的路
分层图最短路[bzoj2834]: 回家的路 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2834 这道题难在建边. 自己写的时候想到了 ...
- 用js实现倒计时功能
源码如下: 原理很简单,看注释吧 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- ELK系列(3) - Elasticsearch修改jvm参数
方法 Elasticsearch默认会配置1G的JVM堆的初始值和最大值,该jvm参数被配置在/config/jvm.options里: -Xms1g -Xmx1g 如果只是个人开发小项目,可以把参数 ...
- 牛客练习赛43F(推式子)
要点 题目链接 1e18的数据无法\(O(n)\)的容斥,于是推式子,官解,其中式子有点小错误 不必预处理mu,直接按照素数的个数判断正负即可 #include <bits/stdc++.h&g ...
- ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(约束第K短路)
题意:求11到nn的第kk短的路径长度,如果超过TT输出Whitesnake!Whitesnake!,否则输出yareyaredawayareyaredawa. 好无以为 , 这就是一道模板题, 当是 ...
- 【Java】在eclipse中使用gradle进行项目构建 入门篇
##Gradle的安装与配置- Gradle 是以 Groovy 语言为基础,面向Java应用为主,基于DSL(领域特定语言)语法的自动化构建工具. 系统环境变量中添加gradle 前往官网下载Com ...