GUTC 2019年9月22日トピック

T1パン

より多くの水、間隔DPを指示

DP [i]の[j]の間隔は明白な答えを表現し、2つの前処理の始まり

移転を考えてみましょう

もし現在のSTR [I] == [J]、および元はパリンドローム最後の段落を形成し、その後に削除されますSTR

STR [i]は!=のStr [j]は、[OK]にブレークポイントを列挙した場合

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#defineは長いlong int型
 INT [DP 1005 ] [ 1005 ]、N。
文字列strの。
署名された{)(メイン
    int型 i = 0 ; iは< 1000年 ; ++ I){
         ためのint型 J = 0 ; J < 1000年 ; ++ J){ 
            DP [I] [J] = 1000000000 
        } 
    } 
    CIN >> N >> STR。
    以下のためのint型私は=0 ; iは= N <; ++ I)DP [i]は[I] = 1 以下のためにint型 i = 0 ; iはN- < 1 ; ++ I){
         場合(STR [I] == STR [iが+ 1 ])DPを[I] [I + 1 ] = 1  DP [I] [I + 1 ] = 2 ; 
    } 
    のためのINT LEN = 3 ; LEN <= N; ++ LEN){
         ためint型 i = 0 ; iがLENを+ <= N; ++ I){
             int型 J = + len- 1 もし(STR [I] == STR [J])DP [I] [j]はDPを= [I + 1 ] [J- 1 ]。
            int型、K <J、K = I ++ K){ 
                DP [I] [J] =分(DP [I]、[J]、DP [I] [K] + DP [K + 1 ] [J] ); 
            } 
        } 
    } 
    のprintf(" %LLDする\ n "、DP [ 0 ] [N- 1 ])。
    リターン 0 ; 
}

T2膜

この質問の複雑さは、ほぼO(N-で考えてみましょう3)は、魔法フロイドを考えます

このタイトルは非常に賢いが、それでも思考の非常によく理解しました

各現在の数の右側の割り当て方法オフダウン検討、最大フロイドを求めるように変更

最後に、何回、各OKに尋ねます

最後に、それも実現可能であるの後ろに、接頭辞を書き留めて、それの前にいるかのようにすることを忘れないでください

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#defineは長い長いint型
 のconst  int型の INFを= 1000000000 ;
int型 F N、M、[ 405 ] [ 405 ]、ANS [ 160005 ]。
メイン(){署名付き
    のscanf(" %のLLDの%のLLD "、&​​N、&M)を、
    以下のためにint型 i = 1 ; iは= N <; ++ I)のためにint型 J = 1 ; J <= N; ++ j)はF [I] [J] = INF。
    以下のためにint型 I = 1 ; I <= M; ++I){
         int型Uを、V。
        scanf関数(" %のLLDの%のLLD "、&​​U&V); 
        F [U] [V] = I。
    } 
    のためのint型のk = 1 ; kは<= N; ++ K)のためのint型 i = 1 ; iが<= N; ++ I){
         場合(I == k)を続けますINT J = 1 ++; J <= N {j)の
             場合(jは== iがj個の== kは||)続けます
            F [I] [J] = 分(最大[K] [J])F(F [i]が[K]、[I] [J] F)。
        } 
    } 
    のためにint型 i = 1 ; iが<= N; ++ I){
         ためINT J = 1 ++; J <= N {j)の
             場合は [F(F [I] [J] = INF!)ANS I] [J]] ++ ; 
        } 
    } 
    のためにint型 I = 1 ; I <= M; ++ I){ 
        ANS [I] + = ANS [I- 1 ]。
        printf(" %のLLD " 、ANS [I])。
    } 
    戻り 0 
}

T3の日

もっと楽しく、この質問を考え、通常は行われない(通常であると考え、PMT、GH、デュ神、神にそのバーqwqのリーダー)

カンカンデータ範囲:10 。6を 

一見感は数学ですが、数学は1E6をn個でしたか?

そして、それについて考える、O(n)の練習は、失敗しました

PMTが言ったことで、突然光を参照してください!txdy PMT!

元のビルドDPI、各番号は、いくつかの数であり得る%のN、検討

 

おすすめ

転載: www.cnblogs.com/sunyx20060115/p/11600875.html