首页 > 其他分享 >P6944

P6944

时间:2024-09-10 20:26:26浏览次数:9  
标签:std int double P6944 1010 ri

概率期望谔谔谔

#include<bits/stdc++.h>
using namespace std;
double f[1010][1010];
double g[1010][1010];
double C[1010][1010];
int main() {
	int n = ri, d = ri, r = ri;
	C[0][0] = 1;
	for(int i = 1; i <= n; i++) {
		C[i][0] = 1;
		for(int j = 1; j <= i; j++)C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
	}
	f[0][n] = 1;
	for(int i = 0; i < d; i++)for(int j = 1; j <= n; j++)for(int k = 1; k <= j; k++) {
				f[i + k][k] += f[i][j] * C[j][k];
				g[i + k][k] += (g[i][j] + min(r, k) * f[i][j]) * C[j][k];
	}
	double G = 0, F = 0;
	for(int i = 1; i <= n; i++)G += g[d][i], F += f[d][i];
	printf("%.8lf\n", G / F + r);
	return 0; 
} 

标签:std,int,double,P6944,1010,ri
From: https://www.cnblogs.com/zan-mei-tai-yang/p/18407111

相关文章

  • 【很难啊、拆分数、观察】P6944 [ICPC2018 WF] Gem Island
    简要题面:求\(n+d\)的\(n\)正整数拆分中,最大的\(r\)个数之和的期望。首先是典中典:KeyObservation:最后的形态\(a_1\toa_n\)的概率都是一样的。Proof:考虑组合数\(\binom{d}{a_1-1,a_2-1.....,a_n-1}\)。然后我们每次在每一个\(a_i-1\)每次分裂有......
  • P6944 [ICPC2018 WF]Gem Island
    题目传送门GemIsland解题思路首先发现,尽管绿宝石会随机、不停的分裂,每分裂一次仅仅是随机抽取一个人多获得一块绿宝石而已。因此考虑将题意抽象成\(1+a_1、1+a_2、1+a......