問題一覧 > 通常問題

No.1840 Random Painting

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 16
作問者 : SumitacchanSumitacchan / テスター : 👑 hitonanodehitonanode 👑 ygussanyygussany
8 ProblemId : 6872 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-01-16 17:06:09

問題文

$1,2,\dots,N$ と番号がついた $N$ 枚のタイルがこの順に円環上に並んでいます。
各整数 $i\ (1\le i\le N-1)$ に対してタイル $i$ の右隣にはタイル $i+1$ があり、タイル $N$ の右隣にはタイル $1$ があります。

タイル $1$ を含むいくつかのタイルは黒く塗られていて、それ以外のタイルはまだ色が塗られていません。
それぞれのタイルの色の情報は、0, 1 からなる長さ $N$ の文字列 $s=s_1s_2\cdots s_N$ で次のように与えられます。

  • 各整数 $i\ (1\le i\le N)$ に対して、タイル $i$ が黒く塗られているならば $s_i$ は 1 であり、塗られていないならば $s_i$ は 0 である。


最初、ユキさんがタイル $1$ のところにいます。 ユキさんは全てのタイルが黒く塗られるまで、次の一連の手順からなる動作を繰り返します。

  • ユキさんが現在いるタイルの右隣と左隣のタイルのいずれかを等確率($1/2$ ずつの確率)で選択し、そこに移動する。
  • 移動先のタイルにまだ色が塗られていないならば、そのタイルを黒く塗る。


全てのタイルが黒く塗られるまでの動作回数の期待値を求めてください。
なお、この値は $10^{18}$ 以下の非負整数であることが制約から証明できます。

入力

$N$
$s$

  • $2\le N\le 10^6$
  • $N$ は整数である。
  • $s$ は 01 のみからなる長さ $N$ の文字列である。
  • $s_1$ は 1 である。
  • $s$ は $1$ つ以上の 0 を含む。

出力

全てのタイルが黒く塗られるまでの動作回数の期待値を整数として出力してください。

サンプル

サンプル1
入力
2
10
出力
1

$1$ 回目の動作で必ずタイル $2$ に移動し、全てのタイルが黒く塗られます。

サンプル2
入力
3
110
出力
2

タイル $3$ にはじめて移動するまでの動作回数の期待値を求めればいいです。
タイル $1,2$ のいずれにいるときもタイル $3$ に移動する確率は $1/2$ なので、動作回数の期待値は $2$ です。

サンプル3
入力
10
1000110010
出力
41

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。