No.012 D
番目の人の進み方の組み合わせの数を とすると, が答えである. 以下で を計算する.
としても一般性を失わない. 以下 とする.
まずは だけ戻らないといけないので, でなければならない. また偶奇性から と の偶奇は一致しなければならない.
右へ移動する回数が決まれば左上下に移動する回数は決まるので, 原点への移動の組み合わせ数は,
となる. とおくと,
となる. これを変形して,
となる. ここで,
を展開して の係数を比較すると,
となる.
part1 のテストケースは が素数なので, 階乗とその逆元をあらかじめ計算しておくことで の計算が でできるので十分間に合う.
part2 以降のテストケースは を都度計算したのでは間に合わない.
そこで, で分母と分子で の数値が何回掛けられているかを求め, 分子で掛けられている回数から分母で掛けられている回数を引いたものを求める. この結果がマイナスになることもありうるので, 上から順に約数で割ってより小さな素因数に分解していく.
何回掛けられているかを求める計算ではいもす法を使って高速化する.