博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[TJOI2015]概率论
阅读量:7200 次
发布时间:2019-06-29

本文共 1231 字,大约阅读时间需要 4 分钟。

史上最短黑题

看起来一脸懵逼,没有取模,1e-9

根据期望定义,发现

分母是一个卡特兰数,,,,不能直接算

所以考虑怎么消掉一些东西

gn表示n个点的叶子个数和,fn表示n个点二叉树个数

 

结论:g(n)=n*f(n-1)

考虑每个n个点的树的叶子,分别拔掉所有k个叶子,给剩下的k个(n-1)个点的树打上标记

那么,g(n)就是n-1个点的所有的树被打的标记之和

一个n-1个点的树,有n个位置可以有叶子,恰好会被打n次标记!

 

然后,ans(n)=g(n)/f(n),f(n)=C(2n,n)/(n+1)化简即可。

#include
#define reg register int#define il inline#define fi first#define se second#define mk(a,b) make_pair(a,b)#define numb (ch^'0')using namespace std;typedef long long ll;template
il void rd(T &x){ char ch;x=0;bool fl=false; while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true); for(x=numb;isdigit(ch=getchar());x=x*10+numb); (fl==true)&&(x=-x);}template
il void output(T x){
if(x/10)output(x/10);putchar(x%10+'0');}template
il void ot(T x){
if(x<0) putchar('-'),x=-x;output(x);putchar(' ');}template
il void prt(T a[],int st,int nd){
for(reg i=st;i<=nd;++i) ot(a[i]);putchar('\n');}namespace Miracle{int main(){ double n;cin>>n; printf("%.12lf",n*(n+1)/(2*(2*n-1))); return 0;}}signed main(){ Miracle::main(); return 0;}/* Author: *Miracle* Date: 2019/4/23 14:29:28*/

 

转载于:https://www.cnblogs.com/Miracevin/p/10757242.html

你可能感兴趣的文章
《开源安全运维平台-OSSIM最佳实践》喜获清华、北大、国家图书馆等国内一流大学图书馆收藏...
查看>>
数据仓库入门(实验2)创建数据源视图
查看>>
戴尔“蓝雷”炸响软件定义存储
查看>>
Socket descriptor not found. Hint: the problem...
查看>>
常用集群架构实战练习篇
查看>>
rsync在windows与windows服务器之间的同步设置
查看>>
寄语笑笑
查看>>
我辞去了年收入50万的工作,去做在线教育的老师
查看>>
从“比较两个含有多个不同元素的集合是否相同”引申出的几种算法
查看>>
第七讲 SCCM2012部署Endpoint Protect
查看>>
通过memcached实现领号排队功能及python队列实例
查看>>
解决VMware View虚拟桌面“黑屏”问题
查看>>
虚拟化基础架构Windows 2008篇之11-WSUS服务器的安装与配置
查看>>
Sub VLAN主机的三层通信原理
查看>>
互联网航空:链接天与地?
查看>>
学习虚拟化技术需要掌握的知识与能力(未完成版)
查看>>
电商:流量不再重要,渠道终将为王
查看>>
【VMware混合云】应用为王
查看>>
创建一个.Net项目
查看>>
SCVMM2012部署之四:安装VMM远程控制台
查看>>