#555(DIV。3)C2ラウンドCodeforces。増加部分列(複雑なバージョン)(贪心)

トピックリンクします。http://codeforces.com/contest/1157/problem/C2

両側が同じ数の場合、どちら側に増加するシーケンスを取得するために時間がかかるために必要な要素を特定します

書式#include <iostreamの> 
の#include <CStringの> 
の#include <アルゴリズム> 
書式#include <cmath> 
の#include <cstdioを> 
する#include <キュー> 
の#include <climits> 
書式#include < 設定 > 
書式#include <スタック> 
の#include < 文字列 > 
書式#include <マップ> 
書式#include <ベクトル>
 の#define 0x3f3f3f3f INF
 使用して 名前空間はstdを、
typedefの長い 長いLL。
  静的 constの LLのMod = 2009 ;
チャーSTR [MAX_N]。
INT [MAX_N]。
ボイド)(解決{
 //     freopenは( "INPUT.TXT"、 "R"、STDIN)。
//     freopenは( "output.txtと"、 "W"、STDOUT); 
    int型のn;
    一方、(scanf関数(" %のD "、&​​N)=!EOF){
         ためint型 i = 0 ; iがn <; ++ I)のscanf(" %dの"、および[I])。
        INT S = 0、E = N - 10 ;   // 前の为序列中最大值
        ながら(S <= E){
             場合([S] <= PREV){
                 一方([E]>前&& E> = S){ 
                    PREV = [e-- ] ; 
                    STR [CNT ++] = ' R ' 
                } 
                ブレーク; 
            } 
            もし([E] <= PREV){
                 一方([S]> PREV && S <= E){ 
                    PREV = [S ++ ]。
                    STR [CNT ++] = " L" ; 
                } 
                ブレーク; 
            } 
            もし([S] <[E] && [S]> PREV){ 
                PREV = [S ++ ]。
                STR [CNT ++] = ' L ' 続け; 
            } 
            もし([S]> [E] && [E]> PREV){ 
                PREV = A [e-- ]。
                STR [CNT ++] = ' R ' 続け; 
            } 
            INT E1 = 0、E2 =0 ;
            もし([S]> PREV){ 
                E1 = 1 一方 (S + E1 <= E && [S + E1]> [S + E1 - 1 ])++ E1。
            } 
            もし([E]> PREV){ 
                E2 = 1 一方(E - E2> = S && [E - E2]> [E - E2 + 1 ])++ E2。
            } 
            であれば(E1> E2){ 
                PREVは、 [S ++ = ]。
                STR [CNT ++] = ' L ' 
            } 
            { 
                PREV = A [e-- ]。
                STR [CNT ++] = ' R ' 
            } 
        } 
        STR [CNT] = ' \ 0 ' 
        printf(" %d個の\ n%sにする\ n " 、CNT、STR)。
    } 
} 
int型のmain(){ 
    )(解きます。
    リターン 0 ; 
}
コードの表示

 

おすすめ

転載: www.cnblogs.com/xorxor/p/10959984.html