我是靠谱客的博主 单薄流沙,最近开发中收集的这篇文章主要介绍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。

原文

最后

以上就是单薄流沙为你收集整理的codeforces 335E Counting Skyscrapers(看不懂没法做系列)的全部内容,希望文章能够帮你解决codeforces 335E Counting Skyscrapers(看不懂没法做系列)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部