다수의 세트의 조합의 수와 관련된 조합 수

  1. $ A_n ^ m $으로의 분할 (% MOD) 요구의 수. 가 재발 식 [I] [J]를 $ DP 달러 $의 DP [I] [J] = \ sum_ {K = 0} ^ {J} DP [I-1] [JK] $, $ $ J $ I $의 총 수를 나눈 값.
  2. 분할 수 (% 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 }

     

  3. 다수의 세트 조합의 수는, 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