伝達方程式のさまざまな状態のナップザック問題をまとめたもの

DP [I] [J] =最大{DP [I-1] [JV [I] + C [i]は、DP [I-1]〜[J]}。
ため(I = 1; Iは<= N-; I ++が){ 

                      ため(J = V [i]は、J <= V; J ++){ // Vに開始これは、V [i]があることに留意されたい

                           IF(J> = V [I])

                              DP [J] =最大{DP [J]、DP [JV [I] + C [I]}; 

                      } 

              }
DP [J] =最大{DP [J]、DP [JV [I] + C [I]}。
DP [I] [J] =最大{DP [I-1] [VKの*のV [I] + Kの*のC [] | 0 <= K <= N [I]};(kはIを表し片K)への商品。
(i = 1; iが<= N; iは++ ){ 

                    ため(J = V; J> = 0; j-- ){ 

                         ため(K = 1; K <= N [i]は、++ k個){ 

                             場合(J > = k個*のV [i])と

                                DP [I] [J] = MAX(DP [I-1] [VKの*のV [I] + Kの*のC [I])
                         } 

                    }
F(4)F(3)+ F(2)+ F(1)=。
最長共通部分列:

 

最長共通部分列問題の性質上、我々はDPを指定することも[i] [j]は、i番目の文字列1と文字列2の前に最長共通サブシーケンス最初のj個の文字です長さは、以下以降Iに関する -1とj-1、ので、この時間は、我々は、一般的に、I = 1、J = 1はI <= LEN1、J <=開始するからLEN2を。

             私はCH1で[I -1] = CH2 [-J 1]、次にDP [I] [j]は= DPを[I-1] [J-1] + 1。
  すべてのこの時間、I = DP [i]が0またはJ = 0 [J]に= 0 ;

                                  0; I = 0又はJ = 0 ; 

持っDP   = DP [I] [J] DP = [1-I] [ J-1] + 1; I > 0 とj> 0およびCH1は[I-1] = CH2 [J-1。]; 

                                DP [I] [J] =最大{DP [I-1]〜[J]、DP [I]、[J-1] }; I> 0 とj> 0およびCH1 [I-1] = CH 2 [J-1] !;
3 、最大シーケンスを発行

.......... A2、配列A1が与えられると、

Qiuzi配列最も大きな問題とDP [i]はサブシーケンスの終わりを示し、AI、maxは最大値であります配列と

コア:

入力データは全て負シーケンスの最大値である場合の最大値である

2があれば、正

(I = 1; I <= N; I ++ ){ 

       DP [I]は = DP [I -1] + AI; 

       IF(DP [I] <0 

          DP [I] = 0 ; 

       IF(MAX < DP [I])

          最大 = DP [I]; 
}
2 、最大昇順または降順配列

配列A1、A2 .......... AN所与; 

DP [I]は、最長シーケンスの長さが上昇(下降反対側)の端部aiを表す

コアコード:

以下のための(I = 1; I <= N; I ++は){ 

       DP [I] = 1 ; 

       のための(K = 1; K <I、K ++ ){ 

            IF(AK <AI && DP [I] <DP [K] + +1 

              DP [I] = DP [K] + +1 ; 

       } 

}

 

おすすめ

転載: www.cnblogs.com/z2529827226/p/11627625.html