【比赛】【SMOJ 2019.1.25~1.26(概率/期望)】

恒大国安

应该是很简单的,但到了最后有两种解法:

  1. 计算出两支球队进球数都不是质数的概率,再用\(1\)减去;
  2. 计算出两支球队各个进球数的概率,再枚举加进答案里面。

比赛的时候偷了懒,用了第一种方法,结果被精度卡死……
因为两个实数相乘会损失很多精度。


排队

这一题其实也不难,唯一一个坑点就是题目里面那一个

\[\left (1-\frac{1}{p} \right ) ^{k-1} \times \frac{1}{p} \]

这个式子的意思是经验值为\(p\)的售货员用\(k\)秒的时间结完一次账的概率。

这个式子看起来难懂,其实一用嘴说出来就明白了:\(\left (1-\dfrac{1}{p} \right ) ^{k-1}\)表示的是这个售货员前\(k-1\)秒没有结完账的概率,\(\dfrac{1}{p}\)表示的就是这个售货员在第\(k\)秒接完了帐的概率。

然后就变回了套路的期望\(\mathrm{DP}\)。方程很容易推。

\(\mathrm{Code}\)


嵌套函数

这个没什么,就是要注意:题意是最后只返回\(y\)的概率,所以在清空数组后只需要\(f[0][y]=1.0\)即可。

\(\mathrm{Code}\)


掷骰子

这个如果用常规的期望\(\mathrm{DP}\)的话是搞不出来的,因为这一题依赖的是游戏结束的状态,所以我们只能用顺推的期望\(\mathrm{DP}\)去做。

然后也就没什么了,在统计答案的时候枚举\(\mathrm{A}\)玩家的得分,再对\(\mathrm{B}\)玩家得分的概率做一个前缀和即可。

\(\mathrm{Code}\)


\(\mathrm{ID}\)分配

这一题其实不难的啊……

首先可以发现直接推比较难,所以我们可以先算出两种方法的合法概率。

容易发现,两种方法所能构造出的合法方案数都是\(\mathrm{P_{id}^{sum}}\)\(sum=\sum\limits_{i=1}^{n} a[i]\))。就是从所有\(id\)中取出\(sum\)个进行排列罢了。

然后总方案数是:

  1. 第一种方法是\(id^{sum}\)个。(每个号都有\(id\)中情况,总共有\(sum\)个号);
  2. 第二种方法是\(\prod\limits_{i=1}^{n} \mathrm{P_{id}^{a[i]}}\)。对于每一组组件都分别考虑排列即可。

然后知道分子分母了,而且分子分母都可以表示成\(sum\)个数的乘积,所以我们每次乘上一对数的商即可。

\(\mathrm{Code}\)

posted @ 2019-08-01 11:16  info___tion  阅读(91)  评论(0编辑  收藏  举报