题目 3096

扑克牌

查看题解 ↗GitHub ↗如何评测
题号
3096
时间限制
1000 ms
内存限制
128 MB
标签
数学概率期望

Admin生日那天,Rainbow来找Admin玩扑克牌。

玩着玩着Rainbow觉得太没意思了,于是决定给Admin一个考验。

Rainbow把一副扑克牌(54张)随机洗开,倒扣着放成一摞。

然后Admin从上往下依次翻开每张牌,每翻开一张黑桃、红桃、梅花或者方块,就把它放到对应花色的堆里去。

Rainbow想问问Admin,得到A张黑桃、B张红桃、C张梅花、D张方块需要翻开的牌的张数的期望值E是多少?

特殊地,如果翻开的牌是大王或者小王,Admin将会把它作为某种花色的牌放入对应堆中,使得放入之后E的值尽可能小。

由于Admin和Rainbow还在玩扑克,所以这个程序就交给你来写了。

输入格式

输入仅由一行,包含四个用空格隔开的整数,A,B,C,D。

输出格式

输出需要翻开的牌数的期望值E,四舍五入保留3位小数。

如果不可能达到输入的状态,输出-1.000。

数据范围

0≤A,B,C,D≤150 \le A,B,C,D \le 15

输入样例:

文本
1 2 3 4

输出样例:

文本
16.393

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解

数据下载

题目 3096 的公开数据

正在读取文件列表…

常用命令

题目 3096 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。