問題の説明:単調に増加するシーケンス長の値が見つけるまで、長さK Aの列の数を考えます。任意のサブシーケンスB AはB = {AK1、AK2、...}、K1 <K2 <ように表すことができる....
状態が意味:[i]がAの長さを表し、B [I]の「最長立ち上がりシーケンス」の終わりです
位相:サブシーケンスの終了位置(一連の位置A、前後)
伝達方程式:[I] =最大{B [J] +1}(0≤j<I、A [j] <[i])とB
ボーダー:B [0] = 0
ターゲット:マックス{B [i]は}1≤i≤N
コードの実装:
#include <ビット/ STDC ++ H> 名前空間STDを使用して、 int型のk; [11011] int型。 int型B [11011]。 int型ANS; INTメイン(){ CIN >> K。 以下のために(INT i = 1; iは= Kを<; iは++){ CIN >> [I]。 } {ため(; iは= Kを<I ++はI = 1 INT) {ため(J ++のint J = 1; J <I) IF([I]> [J]){ B [I] = MAX( B [i]は、B [J])。 } } 、B [i]は++; ANS = MAX(ANS、B [I])。 } COUT << ANS << ENDL。 0を返します。 }