1010迎撃ミサイルをAcWing

// 貪欲プラスDP 
の#include <iostreamの> 使用して名前空間STD;
 CONST INT N = 1010 ;
 INT N-;
 int型Q [N];
 int型F [N];
 int型 G [N]; // 各配列の最後に格納された数int型のmain(){
     一方(CIN >> Q [N-])N - ++ ;
     INT RES = 0 ;
     のためのINT I = 0、I <N - 、I ++ ){ 
        F [I] = 1 ;
         のためのINT J = 0。 J <I、J ++
  
){
             IF(Q [J]> = Q [I])
                F [I] = MAX(F [I]、F [J] + 1 ); 
            RES = MAX(RES、F [I]); 
        } 
    } 
    COUT << << RES ; ENDL
     INT CNT = 0 ; //は、配列の数を示している
    ためINT Iは= 0 ; I <N-; I ++ ){
         int型 = K 0 ; //は、数列が横断した表し
        、一方(Kを<CNT && Gは、[K] <Q [I])// 全ての配列を横断終了し、最後のシーケンスQ [I]より小さくない 
            K ++; // 後で検索
        G [K] = Q [I]; // サイクルが終了し、いずれかの完全見つけるのいずれかよりも、すべての配列が小さい横断
        IF(K> = CNT)CNT ++を; // 最初の時刻kは0であり、CNT IS 0そう直接G [K] = Q [I]
                         // なぜなら、K> = CNT CNT ++すなわち、それは配列を有する
    } 
    COUTを << CNT << ENDL;
     戻り 0 ; 
}

 

 

おすすめ

転載: www.cnblogs.com/QingyuYYYYY/p/11961171.html