- $ A_N ^ M $の区分(%MOD)の要件の数。そこ漸化式[I] [J] $にDPを$ $のDP [I] [J] = \ sum_ {k = 0} ^ {J} DP [I-1] [JK] $、$ $ J $ I $の合計数は、分割します。
- 分割数(%MOD)は$ C_N ^ M $を要する、再発式がある:$ DP [I] [J ] = DP [I]、[J-1] + DP [I-1]〜[J] $は。
コードは以下の通りであります:
1個の int型N、M。 2 INTの DP [MAX_M + 1 ] [MAX_N + 1 ]。 // DP数组 3 4 intが(解決){ 5 DPが[ 0 ] [ 0 ] = 1 。 6 用(int型 I = 1 ; I <= M Iは++ ){ 7 用(INT J = 0 J ++; J <= N ){ 8 もし - (I> = J 0 ){ 9 DPを[I] [J ] =(DP [I - 1] [J] + DP [I] [J - I])%MOD。 10 } 他{ 11 DP [i] [j]はDP [I - = 1 ] [j]を。 12 } 13 } 14 } 15 リターンDP [M] [N]。 16 }
- 複数のセットの組み合わせの数は、n個の項目があり、i番目の$ $のa_iをあります。アイテムのさまざまな種類が互いに区別することができますが、同じ種を区別することはできません。借入中の種のm個のこれらの項目から。
漸化式:$ DP [I + 1] [j]はDPを= [I + 1] [J-1] + DP [I] [J] [I]、[J-1-a_iを] $の-dp
コードは以下の通りであります:
1 INT N-、M; 2 INT A [MAX_N]; 3 INT DP [MAX_N + 1 ] [M + + MAX 1。]; 4 。5 INT ({)を解く 6。 // メソッドは常に一つだけを取りません 図7は、 のために(int型 I = 0 ; I <= N; I ++は){ 8。 DP [I] [ 0 ] = 1 ; 9 } 10 のために(INT I = 0、I <N - 、Iは++ ){ 。11 用(INT J =1 ; J <= M。J ++ ){ 12 であれば(J - 1 - [I]> = 0 ){ 13 、DP [I + 1 ] [J] = 14 (DP [I + 1 ] [j - 1 ] + DP [I] [J ] - DP [I] [J - 1 - [I] + MOD)% 15 MOD。 16 } 他{ 17 DP [I + 1 ] [j] =(DP [I + 1 ] [j - 1 ] + DP [I] [J])%MOD。 18 } 19 } 20 } 21 リターンDP [n]は[M]。 22 }
複数のセットの組み合わせの数に関連する組み合わせの数
おすすめ
転載: www.cnblogs.com/romaLzhih/p/11415506.html
おすすめ
ランキング