1 LL C [ 3010 ] [ 3010 ]。 2 3 ボイドのinit(){ 4 C [ 0 ] [ 0 ] = 1 ; 5 のための(INT iが= 1 ; I < 3010は、I ++ ){ 6 C [i]が[ 0 ] = 1 ; 7 のための(INT J = 1 ; J <= I; J ++ ){ 8 C [I] [J] =(C [I - 1 ] [J] + C [I - 1 ] [J - 1 ])%モッド; 9 } 10 } 11 }
フェルマーの小定理プラス組み合わせの数を最適化するための迅速な電力需要
LLダ[MAXN]。// G ++長い長い 、ボイドのinit() { int型I; DA [ 0 ] = 1 ; DA [ 1 ] = 1 。 以下のための(iは= 2 ; I <MAXN I ++ ) DA [I] = I * DA [I- 1 ]%MOD。 } LL quickmod(LL A、LL b)は { LL ANS = 1 。 一方、(b)は、 { もし、(B&1 ) { ANS =(ANS *)%MOD。 B- ; } B / = 2 。=((%MOD)*(%MOD))%MOD。 } 戻りANS。 } LL C(LL A、LL b)は { リターン(DA [A]%MOD)*(quickmod(DA [B] * DA [AB]%MOD、MOD- 2))%MOD。 }
従来の組合せ式の数: