ARC110Dの形式的べき級数を使わない解法
D - Binomial Coefficient is Fun
- BiがAiより小さい時、二項係数は0になる
- なのでBiが小さいケースは考える必要がない
- とする。
- として、残りをとする
- となる
- 「N個の枠にR個(以下)のボールを配る」の形になる
- 簡単のために2個の枠にちょうどK個のボールを配ることを考える
- (0, K), (1, K-1), … , (K, 0) の配り方がある
- 求める解X2はになる
- これを素朴に実装していくつかの値について求め、そこから答えの式を予想する手もある(筆者はそうした)が、このページでは数式変形でやる
- 二項係数の対称性から
- になる
- 重複組合せ: n個から重複を許してk個選ぶ方法の数
- 重複組合せの形で書く:
- シグマの中身はA1+1個からi個、A2+1個からK-i個選ぶ重複組合せ
- 可能な全てのiについて足し合わせたものは、A1+A2+2個からK個選ぶ重複組合せになる。
- 二項係数の形に戻す
- ここまででN=2でちょうどK個配る時の答えが一つの二項係数で表現できた
- 次は3以上のNについて考える
- 変数Kをiにリネームする
- この時、N=3の時のXはこうなる
- これはA1がA1+A2+1になっただけなので上記の議論がそのまま使える
- 変数Kをiにリネームする
- 一般のNの時:
- これはちょうどK個配る時の解だった
- 問題が求めている答えXはR以下のすべての和
- ホッケースティック恒等式:
- ホッケースティック恒等式で和を求める
- 二項係数の対称性から
- なので
- これで求めるべき値が一つの二項係数にまとまった
- N+Mは10^9ぐらいになるが、S+Nは10^7にならないので適切に実装すれば間に合う