No.2872 Depth of the Parentheses
タグ : / 解いたユーザー数 93
作問者 :

問題文
寝癖くんは、表が出る確率が で、裏が出る確率が のコインと空文字 を持っています。
いま、以下の試行を 回繰り返すことを考えます。
コインを投げ、
- 表が出たら の末尾に
(
を追加する。 - 裏が出たら の末尾に
)
を追加する。
このようにして得られる長さ の 括弧列 について、その深さの期待値を で求めてください。
ただし、括弧列 の深さとは、以下で定められる値のことをいいます。
の先頭 文字からなる文字列 に対して、 の末尾に )
を追加して正しい括弧列にするために必要な最小の )
の数を とするとき
- が正しい括弧列ならば .
- そうでないならば .
(())()
の深さは 、()
の深さは 、((()))((
の深さは (正しい括弧列でない)となります。
期待値 とは
求める期待値は必ず有理数になることが証明できます。また、この問題の制約下では、求める期待値を既約分数 で表したときに、 が で割り切れないことが保証されます。このとき、 を満たす がただ一つ存在するので、 を出力してください。
正しい括弧列とは
正しい括弧列とは、以下のいずれかを満たす空でない文字列のことをいいます。
()
- ある正しい括弧列 が存在し、 をこの順に連結した文字列
- ある正しい括弧列 が存在し、
(
,,)
をこの順に連結した文字列
入力
入力は以下の形式で標準入力から与えられます。
- 入力はすべて整数
この問題には高難易度の制約が、AC判定とは関係のないevilケースとして用意されています。余力のある方はぜひ挑戦してみてください。evilケースの制約は以下のようになっています。
evilケースの制約
- 入力はすべて整数
出力
答えを1行で出力してください。
サンプル
サンプル1
入力
50 2
出力
811073537
得られる括弧列とその確率は以下のようになります。
- 確率 で
(())
- 確率 で
()()
- 確率 で正しい括弧列でない
サンプル2
入力
100 5
出力
0
得られた括弧列が正しい括弧列となる確率は です。
サンプル3
入力
31 4
出力
414773523
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。