組合せ論テンプレート
1.組合せ式C(N、r)は
パスカルの三角形を利用する方法
Cは、グローバル配列のアレイとして定義されています
const int型のmod = 100007;
INT CMP(整数 nは、INTのR) { ため(int型 i = 0 ; iがn = <; iは++ ) { C [i]が[ 0 ] = 1 ; C [i]は[I] = 1 。 } のための(int型 I = 2 ; iが<= N; iが++ ) { ため(INT J = 1 ; J <= nであり、j ++ ) { C [I] [J] =(C [I- 1 ] [J- 1 ] + C [I- 1] [J])%MOD。 } } 戻りC [n]が[R] }
データ範囲を知っている、複数のシーク
nは万の最大値である場合、Rの最大値は、質問そのものの意味を変え、100です。
ボイドCMP() { C [ 0 ] [ 0 ] = 1 。 以下のために(int型 I = 1 ; I <= 10000 ; I ++ ) のための(INT J = 0 ; J <= 100 ; J ++ ) C [I] [J] =(Cを[I- 1 ] [J- 1 ] + C [I- 1 ] [j])%MOD 。 }