codeforces 335E Counting Skyscrapers(看不懂没法做系列)

译文

题目链接

许多摩天大楼排成一排。摩天大楼的数量是在2到314!之间随机选择的(314!,一个非常大的数字)。每栋摩天大楼的高度都是随机独立选择的,其中高度为i的概率为 2i 2 − i 。一栋高度为i的摩天大楼的楼层从0到i-1进行编号。

为了加快运输时间,摩天大楼之间安装了许多ZIP运输线。具体来说,对于两栋大楼的第i层,当且仅当ta们之间没有具有第i层的摩天大楼时,就有一条拉链线将一座摩天大楼的第i层与另一座摩天大楼的第i层相连。

Alice和Bob决定统计摩天大楼的数量。

Alice很耿直,想知道有多少栋摩天大楼。她从最左边的摩天大楼开始,计数为1。ta每次向右移动遇到一座摩天大楼,就在ta的计数器上累加1。ta会一直这样到达最右边的摩天大楼。

Bod很急性的,希望尽快完成统计。他从最左边的摩天大楼开始,计数为1。他使用ZIP运输线在摩天大楼之间移动。每一次,Bob会使用可用的最高ZIP运输线达到最右边,但由于ta这个怂*有恐高症,就忽略了高度大于h的楼层。当Bob使用ZIP运输线时,由于速度太快以至于无法计算ta通过的摩天大楼数量。简单的,ta只是将 2i 2 i 添加到ta的计数器上,其中i是ta当前所在楼层的编号。ta会一直这样到达最右边的摩天大楼。

考虑下面的例子。有6座建筑物,从左到右高度为1,4,3,4,1,2,h = 2。Alice从ta的计数器开始1开始,然后累加5次1,得到结果:6。Bob的计数器从1开始,然后按顺序添加1,4,4和2,结果为12。注意:鲍勃由于恐高症(h = 2)而忽略了最高的ZIP运输线。
这里写图片描述
Bob的计数器显示在图像上方,Alice的计数器显示在图片下方。所有的ZIP运输线都展示了出来。 Bob的路径用绿色的虚线表示,Alice的路径用粉红色的虚线表示。摩天大楼的楼层都被编上了号,Bob使用的ZIP运输线上都标记了添加到ta计数器上的数量。

当Alice和Bob到达最右边的摩天大楼时,ta们会互相交流一下自己的数据。你将获得Alice计数器的值或Bob计数器的值,并且计算另一个计数器的期望值。

输入

输入第一行是一个名称,“Alice”或“Bob”。第二行包含两个整数n和h(2≤n≤30000,0≤h≤30)。如果名字是“Alice”,那么n代表Alice到达最右侧摩天大楼时计数器的值,否则n代表Bob到达最右侧摩天大楼时计数器的值; h代表Bob能够接受的最高楼层数。

输出

输出一个实数,如果题目给出的是Bob计数器的值的话,该数表示Alice的计数器的期望值;如果题目给出的是Alice的计数器的值的话,该数表示Bob的计数器的期望值。

答案的绝对或相对误差不超过 109 10 − 9

样例输入一

Alice
3 1

样例输出一

3.500000000

样例输入二

Bob
2 30

样例输出二

2

样例输入三

Alice
2572 10

样例输出三

3439.031415943

注意

在第一个样例中,Bob的计数器有62.5%的概率为3,25%的概率为4,12.5%的概率为5。

原文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值