公開しました
ここです
使い方
3行目から71行目までをコピーしてペーストしましょう!
問題に応じて60行目のMOD
(modです)とmaxN
(階乗の値、二項係数の引数に入る値の最大値です)をいじりましょう!
が欲しい時は次のように使います。
ans += binommod(N, i);
が欲しい時は、60行目のMOD
を に変えて、次のように使います。
ans += ifact[N];
入力とかでmodが変わるときは、60-63行目のconstexpr
を外してください。
蛇足
実装はconstexprなので、実行次は実質O(1)で求められます!(2回の乗算と2回の剰余算)
前計算はコンパイル時なので遅くても良いのですけど、MODとかが変わる時に悲しくなってはいけないので のものを実装しています。
コンパイル時計算なので、ここでちょっと大きい(弱くらい?)計算をするとコンパイルに時間がかかりすぎてCEになります。気をつけましょう。
おしまいです