Official

F - Black Jack Editorial by nok0


はじめに、y=iy=i となる確率 p[i]p[i] を求めましょう。これは動的計画法で求めることが可能です。

具体的には、p[0]=1\mathrm{p}[0]=1 からはじめて、i=0,1,,l1i=0,1,\ldots,l-1 について p[i+1],,p[i+D]\mathrm{p}[i+1], \ldots,\mathrm{p}[i+D]p[i]D\frac{\mathrm{p}[i]}{D} を加算すればよいです。これは imos 法により高速に行えます。または、貰う DP だと思えば累積和により処理することもできます。

次に、x=ix=i で終える場合の勝率 q[i]q[i] を求めましょう。これは先ほど求めた p[j]p[j] の累積和から計算できます。

最後に、x=ix=i の状態のときの勝率 r[i]r[i]を求めましょう。サイコロを振る場合と振らない場合で場合分けすれば、

r[i]=max(q[i],1Dj=i+1i+Dr[j])r[i] = \max(q[i], \frac{1}{D}\sum_{j=i+1}^{i+D}r[j])

という式が成り立つので、ii の降順に rr を求めることが出来ます。最終的に得られる r[0]r[0] が答えとなります。

posted:
last update:



2025-04-04 (Fri)
02:03:53 +00:00