#P5249. [LnOI2019] 加特林轮盘赌

[LnOI2019] 加特林轮盘赌

题目背景

加特林轮盘赌是一个养生游戏。

题目描述

与俄罗斯轮盘赌等手枪的赌博不同的是,加特林轮盘赌的赌具是加特林。

加特林轮盘赌的规则很简单:在加特林的部分弹夹中填充子弹。游戏的参加者坐在一个圆桌上,轮流把加特林对着自己的头,扣动扳机一秒钟。中枪的自动退出,坚持到最后的就是胜利者。

我们使用的是 2019 年最新技术的加特林,他的特点是无需预热、子弹无限,每一个人,在每一回合,中枪的概率是完全相同的 P0P_0

每局游戏共有 nn 只长脖子鹿,从 1 长脖子鹿开始,按照编号顺序从小到大进行游戏,绕着圆桌不断循环。

游戏可能会循环进行多轮,直到场上仅剩下最后一只长脖子鹿时,游戏结束。

给出 P0P_0nn,询问 kk 号长脖子鹿最终成为唯一幸存者的概率 PkP_k

如果 P0=0P_0=0,我们认为胜者为 11 号。

输入格式

仅一行三个数,P0,n,kP_0,n,k

输出格式

一个浮点数 PkP_{k},误差应该小于 10810^{-8}。(请保留更多位数的小数)

0.5 2 1
0.33333333
0.5 2 2
0.66666667
0.5 3 1
0.23809524
0.5 3 2
0.28571429

提示

  • 对于 10%10\% 的数据,n100n \le 100
  • 对于 30%30\% 的数据,n500n \le 500
  • 对于另外 20%20\% 的数据,k=nk = n
  • 对于 100%100\% 的数据,1kn104,0P011 \le k \le n \le 10^{4}, 0 \le P_0 \le 1

所有数据的时间限制为 1000ms,空间限制为256MB,可开启 O2 优化。