ARC110Dの形式的べき級数を使わない解法

image 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になっただけなので上記の議論がそのまま使える
  • 一般のNの時:
    • これはちょうどK個配る時の解だった
    • 問題が求めている答えXはR以下のすべての和
  • ホッケースティック恒等式:
  • ホッケースティック恒等式で和を求める
  • 二項係数の対称性から
  • なので
  • これで求めるべき値が一つの二項係数にまとまった
  • N+Mは10^9ぐらいになるが、S+Nは10^7にならないので適切に実装すれば間に合う