- $ 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는 [I] [J-1] + (DP) [I-1] [J] $ DP를 =.
다음과 같이 코드입니다 :
1 INT의 N, m; 2 의 INT DP [MAX_M + 1 ] [MAX_N + 1 ]; // DP数组 3 4 INT는 () {이 해결 5 DP가 [ 0 ] [ 0 ] = 1 ; 도 6 에 대해 ( int로 난 = 1 ; I <= m 내가 ++ ) { 7 대 ( INT의 J = 0 J ++; J <= N ) { 도 8 의 경우 - (ⅰ> = 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 $의 A_I있다. 아이템의 종류는 서로 구별 할 수 있지만 같은 종을 구별 할 수 없습니다. 차입에 종의 m 번호 이러한 항목에서.
반복 식 : $의 DP는 [내가 + 1] [j]가 DP를 = I + 1] [J-1] + DP [I] [J] -dp [I] [J-1 A_I] $
다음 코드는 :
. (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 - A [내가]> = 0 ) { 13 DP는 [내가 + 1 ] [j]가 = 14 (DP를 [내가 + 1 ] [J - 1 ] + DP [I] [J ] - DP [I] [J - 1 - A [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
추천
행