トピックポータル
問題解決のアイデア:
水の良い質問。
ACコード:
1の#include <iostreamの> 2の#include <cstdioを> 3の#include <マップ> 4 5を 使用して 名前空間STDを、 6 7マップ< 文字列、整数 > F。 8 INT N、ANS = 1 。 9 列 L [ 2001 ]。 10 11インラインint型の最大値(int型、int型B){ 12 場合(> = B)を返します。 13 リターンB。 14 } 15 16 INT メイン(){ 17 のscanf(" %d個"、&N) 18 のために(INT iは= 1 ; iが<= N; I ++ ){ 19 CIN >> L [i]は、 20 F [L [I] = 0 ; 21 } 22 のために(INT iが= 1 ; iが<= N; I ++ ){ 23 のために(INT J = 1 ; J <L [i]を.LENGTH(); J ++ ){ 24 列 O = L [i]は.SUBSTR (0 、j)は、 25 であれば(f.count(O)) 26 F [L [I] = MAX(F [L [I]、F [O] + 1 )。 27 } 28 であれば(F [L [I]] == 0)F [L [I] = 1 。 29の ANS = MAX(ANS、F [L [I])。 30 } 31 のprintf(" %dの" 、ANS)。 32 リターン 0 。 33 }