atcoder#ABC238H. [ABC238Ex] Removing People
[ABC238Ex] Removing People
题目描述
から までの番号を付けられた 人の人が、人 、人 、、人 の順に時計回りに円環状に等間隔に並んでいます。 それぞれの人が向いている方向は L
または R
のみからなる長さ の文字列 で表されます。各 に対し、 L
ならば人 は反時計回りの方向を向いており、 R
ならば人 は時計回りの方向を向いています。
以下の操作を 回繰り返します。
- 残っている人の中から等確率で一人を選び、その人から見て一番手前にいる残っている人を円環から除く。このとき、選んだ人から除かれる人までの距離と同じだけのコストがかかる。
ここで、人 から人 までの距離を以下のように定義します。
- 人 が時計回りの方向を向いている場合
- ならば
- ならば
- 人 が反時計回りの方向を向いている場合
- ならば
- ならば
合計コストの期待値を で求めてください(注記参照)。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
答えを出力せよ。
题目大意
给定一个环形排列的 个人,每个人朝向左或右。定义从第 个人到第 个人的距离为如下值之一:
- 如果第 个人和第 个人都朝向左并且 或者都朝向右并且 ,那么距离为 。
- 如果第 个人朝向左,第 个人朝向右,并且 ,那么距离为 。
- 如果第 个人朝向右,第 个人朝向左,并且 ,那么距离为 。
执行以下操作 次,每次选择当前剩余人员中的一个人并将该人前面最近的人从环形排列中移除(即被移除的人要求与该人距离相同),移除时需要支付与两个人距离相等的代价。
求所有操作完成后所需支付的代价的期望值,结果对 取模。
3
LLR
831870297
10
RRRRRRLLRR
460301586
提示
注記
求める期待値は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な つの整数 , を用いて と表したとき、 かつ を満たす整数 がただ一つ存在することが証明できます。この を求めてください。
制約
- は整数
- は
L
とR
のみからなる長さ の文字列
Sample Explanation 1
求める期待値は です。 ですので、 を出力します。 なお、例えば以下のような操作手順が考えられます。 1. 人 を選ぶ。人 から見て一番手前にいる、円環に残っている人は人 であるため、人 を円環から除く。 2. 人 をもう一度選ぶ。人 から見て一番手前にいる、円環に残っている人は人 であるため、人 を円環から除く。 この操作手順における合計コストは となります。