🚧 This website is under construction. 🚧
AtCoder
ABC
194
D

期待値DP
ABC
D

ABC194 D - Journey

https://atcoder.jp/contests/abc194/tasks/abc194_d (opens in a new tab)
緑上位

重要な知見 [* 成功確率 p の試行を成功するまで行った際の期待値は、 1/p1 / p ]

証明 求める期待値を XX とすると、 X=1+(1/p)×XX = 1 + (1 / p) \times X XX について解くと、 X=1/pX = 1 / p

問題下で考えられる状況は、 n1n - 1 個の頂点に未到達 n2n-2 個の頂点に未到達 ... 11 個の頂点に未到達 であり、各々についてその頂点に辿り着く確率は、 (N1)/N(N - 1) / N(N2)/N(N - 2) / N 、...、 1/N1 / N となる。各状況についての期待値の総和が解となる。

n = int(input())
print(sum(map(lambda i: n / (n - i), range(1, n))))