QOJ.ac

QOJ

時間限制: 2.0 s 記憶體限制: 512 MB 總分: 100

#12539. 外国明信片

统计

Fedor 是一位狂热的旅行者。由于他的爱好,他收集了来自世界各地的大量明信片。每张明信片的正面都有独特的图案,背面则有一些地址信息和文字。

在 Fedor 家举行的一次聚会上,他决定向客人们展示他所有的明信片。为了实现这一点,他想把它们全部铺在桌子上。起初,他所有的明信片都叠成一叠拿在手中。不幸的是,这叠明信片中有些可能放反了——即上下颠倒。理想情况下,Fedor 希望桌上所有的明信片都是正面朝上的,但逐一检查每张明信片并将其翻转非常耗时。于是,他想出了以下处理过程:

  1. 设 $n$ 为手中剩余的明信片数量。Fedor 在 $1$ 到 $n$ 之间均匀随机选择一个数字 $k$,并从叠堆顶部取走 $k$ 张明信片。
  2. 他查看这 $k$ 张明信片中最顶端的那一张。如果它的朝向是错误的,他就将这整叠 $k$ 张明信片一起上下翻转。
  3. 然后,他将这 $k$ 张明信片放在桌子上,不再进行任何旋转。
  4. 如果手中还有剩余的明信片,Fedor 回到第 1 步。

当然,当所有明信片都放在桌上后,可能仍有一些是背面朝上的。求这些明信片的期望数量。

输入格式

输入由一行 “C” 和 “W” 字符组成,第 $i$ 个字符对应叠堆中从顶部开始数的第 $i$ 张明信片。“C” 表示第 $i$ 张明信片在初始叠堆中朝向正确,“W” 表示第 $i$ 张明信片朝向错误。字符数量在 $1$ 到 $10^6$ 之间(含边界)。

输出格式

输出一个实数,表示桌上朝向错误的明信片的期望数量。绝对或相对误差不应超过 $10^{-9}$。

样例

样例输入 1

CWCC

样例输出 1

1.0

样例输入 2

WWCWCCW

样例输出 2

2.333333333333

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.