LIS /上昇最長シーケンスの動的計画法(DP)

問題の説明:単調に増加するシーケンス長の値が見つけるまで、長さ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を返します。
}

おすすめ

転載: www.cnblogs.com/hazel-wu/p/11294760.html