atcoder#ABC270H. [ABC270Ex] add 1
[ABC270Ex] add 1
题目描述
かつ であるような、 個の非負整数の組 が与えられます。
高橋君は 個のカウンターを持っており、最初、全てのカウンターの値は です。
高橋君は、全ての について 番目のカウンターの値が 以上となるまで次の操作を繰り返します。
個のカウンターの中から つを等確率に選び、その値を にする。(選択は毎回独立に行う。)
選んだカウンター 以外 のカウンターの値を 増加させる。
高橋君の操作回数の期待値を で出力してください(注記参照)。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
高橋君の操作回数の期待値を で出力せよ。
题目大意
给定一个由非负整数组成的 元组 ,其中 且 。
有 个初始值为 的计数器。
需要进行下述操作,直到对于每个 ,第 个计数器均至少为 :
均匀随机地选定某一个计数器,并将该计数器归零。其他的计数器增加 。
输出操作次数的期望对 取模的结果。
2
0 2
6
5
0 1 3 10 1000000000000000000
874839568
提示
注記
求める期待値は必ず有限値かつ有理数となることが証明できます。また、この問題の制約下では、その値を互いに素な つの整数 , を用いて と表したとき、 かつ を満たす整数 がただ一つ存在することが証明できます。この を求めてください。
制約
- $ 0=A_1\leq\ A_2\leq\ \cdots\ \leq\ A_N\leq\ 10^{18} $
- 入力は全て整数
Sample Explanation 1
番目のカウンターの値を で表します。 高橋君の操作が終了するまでの一連の流れの例は次の通りです。 - 番目のカウンターの値を にした後、それ以外のカウンターの値を 増加させる。 となる。 - 番目のカウンターの値を にした後、それ以外のカウンターの値を 増加させる。 となる。 - 番目のカウンターの値を にした後、それ以外のカウンターの値を 増加させる。 となる。 - 番目のカウンターの値を にした後、それ以外のカウンターの値を 増加させる。 となる。 この場合の操作回数は となります。 回で操作が終了する確率はそれぞれ $ 0,\frac{1}{4},\ \frac{1}{8},\ \frac{1}{8},\ \frac{3}{32},\ldots $ であり、 期待値は $ 2\times\frac{1}{4}+3\times\frac{1}{8}+4\times\frac{1}{8}+5\times\frac{3}{32}+\dots=6 $ となります。 よって、 を出力します。