luogu P3978 [TJOI2015]概率论
Posted smyjr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P3978 [TJOI2015]概率论相关的知识,希望对你有一定的参考价值。
看着就是要打表找规律
使用以下代码
for(int i=3;i<=20;i++)
{
int a1=0,a2=0;
for(int j=1;j<i;j++)
{
for(int k=0;k<i;k++)
for(int l=0;l<=j;l++)
f[i][j]+=f[k][l]*f[i-k-1][j-l];
a2+=f[i][j],a1+=f[i][j]*j;
}
}
可以打出表
n 树总数 叶子总数
1 1 1
2 2 2
3 5 6
4 14 20
5 42 70
6 132 252
7 429 924
...
设树总数为(f_n),叶子总数为(g_n),我们可以发现[f_n=frac {inom{2n}{n}} {n+1}][g_n=nf_{n-1}]
我们要求的期望就是[frac{g_n}{f_n}=frac{nf_{n-1}}{f_n}=frac{n frac {inom{2n-2}{n-1}} {n}}{frac {inom{2n}{n}} {n+1}}]
[=frac{inom{2n-2}{n-1}}{inom{2n}{n}}*(n+1)=...=frac{n(n+1)}{2(2n-1)}]
没了
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#include<ctime>
#include<queue>
#include<map>
#define LL long long
#define il inline
#define re register
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;
il LL rd()
{
re LL x=0,w=1;re char ch;
while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*w;
}
double n;
int main()
{
n=rd();
printf("%.10lf
",n*(n+1)/2/(2*n-1));
return 0;
}
以上是关于luogu P3978 [TJOI2015]概率论的主要内容,如果未能解决你的问题,请参考以下文章