基本的な考え方:
最長の文字列は、これらの質問に、配列DPアイデアをドロップしません。
キーポイント:
ノー;
書式#include <iostreamの> 書式#include <ベクトル> 書式#include <アルゴリズム> 名前空間stdを使用。 const int型MAXN = 25; int型のn; int型のD [MAXN]。 int型DP [MAXN]。 INTメイン(){ 一方、(CIN >> N){ フィル(D、D + MAXN、0); フィル(DP、DP + MAXN、0); {(; I <N I ++ INTがI = 0)するため CIN >> D [i]は、 } DP [0] = 1; 以下のために(INT I 1 =; N I <; Iは++){ int型マックス= 0; 用(INT J = 0; J <I、J ++){ (D [i]は<= D [J] && DP [J]>最大)場合 マックス= DP [J]。 } DP [I] = MAX(最大値+ 1、1)。 } ソート(DP、DP + N)。 COUT << DP [N - 1] << ENDL。 } }