LOJ#2878.「JOISC 2014 2日目」消印ラリーダイナミックプログラミングシーケンス+ブラケット

神ダイ疑問、我々はチェーン+リングの徒歩数枚ある実施形態を観察しなければなりません。  

その後、リングは、括弧のセットとして見ることができる、DPに基づいて配列するようブラケット。 

コード: 

<ビット/ STDC ++ H>の#include    
の#define LL長い長
の#define N 3040    
の#define setIO(S)freopenは(S ".IN"、 "R"、標準入力)   
名前空間stdを使用。
INT、N、T。  
INT L0 [N]、L1 [N]、R0 [N]、R1 [N]、F [N]、[N]。  
INTメイン()
{ 
    // setIO( "入力")。
    私は、jはint型。
    scanf関数( "%D%D"、&N、&T)。
    memsetの(F、0x3fを、はsizeof(F))。       
    ための式(I = 1; iが<= N; ++ I)
        のscanf( "%D%D%D%D"、およびL0 [I]、および[I] R1、&R0 [i]は、&​​L1 [I])。    
    F [0] [0] = 0;    
    ため(I 1 =、iが<= N; ++ i)が
    { 
        ため(J = 0であり、j <= N; ++ j)は
        { 
            IF(J)
            {
                F [I] [J] =分(F [I] [J]、F [I-1]〜[J] + J * 2 * T + R0 [I] + L1 [I])。          
            } 
            F [I] [J] =分(F [I] [J]、F [I-1]〜[J] + J * 2 * T + L0 [I] + R1 [I])。         
            F [I] [J] =分(F [I] [J]、F [I-1] [J + 1] +(J + 1)* 2 * T + L0 [I] + L1 [i])と;    
        } 
        (j = 1; J <= N; ++ j)のためのF [I] [J] =分(F [I] [J]、F [i]は[J-1] + R0 [I] + R1 [私]);    
        F [I] [J] =分(F [I] [J]、F [i]は[J + 1] + L0 [I] + - (J; J> = 0 J = N-1)のためのL1 [I])。     
    }    
    のprintf( "%dの"、F [N] [0] +(N + 1)* T)。   
    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/guangheli/p/12381076.html