20190817エクササイズ

ennn、今日は誰も0x125E591 1S +の誕生日である。-のXCC

T1:LG奇妙なエレベーター。

S1:各点について構築する正規縁、最短ラン(PSを:それはDPではないので、コードがオンになっていません。)。

T2:LGニックタスク。

S2:このトピックに関する残念ながら試験カードは、最後は自然に、与えられた断面との質問のセクションに関連付けられているにも暴力を果たしLG昨日に行う考えていなかった見空腹牛は   、その後、F [i]との[設定しましたi番目の段落を選択から選択又は区間kをカバーすることができる前に、フロントカバーセグメントiは、正当であるが、F [i]が[0]に列挙されているI iは、間隔fが最小作業時間とケースが保証されていないとして0/1]表現されます[I] [0] =最大 {F [k]を[1]} 転送の、[I] [1]、扱うI部をカバーしていない区間kに移動し、最小コストvを見つけるのは難しいとなるfはカバーΣK、F [i]を[1] = MAX(F [i]が[1]、V +時間[i])と、 最終的に発見されないことが見出され、後者の選択はまた、前部の状態に影響を与えることができることを見出したV方法そうはっきり。DPを押して説明を見ていない、実際、このとき、記録が最初のタスクではない。後者の影響ので、状態を前の状態を押下することが見出され、それはFであり、[I] = F [I + 1] +1、 fは、実行するタスクがある[I] =Σmax( [I]、F [iが+ lenがF)、 サンプルのデバッグが、自然に理解することをお勧め。

概要:①穏やかな、正の解は、暴力.②MSを戦うつもりはない:コードを1回、2回と思います。

#include <iostreamの> 
する#include <アルゴリズム> 
の#include <CStringの> 
する#include <cstdioを>
 使用して 名前空間STD。
#define E出口(0)
 の#define Rレジスタ
 int型 N、K、ID = 1、和[ 10010 [F]、10010 ]。
構造体扁{
     int型のL、V。
} LEN [ 10010 ]。
BOOL CMP(扁、扁b)は{ 戻り AL> BLは;}
 int型のmain()
{ 
    freopenは(" LIGNJA.in "R"STDIN); 
    freopenは(" LIGNJA.out " " W "STDOUT); 
    scanf関数(" %d個の%のD "、&​​N、&)K;
     のための(R用のint i = 1 ; iは= Kを<; ++ I){ 
        scanf関数(" %D%D "、およびLEN [I] .L&LEN [I] .V);
         ++ 和[LEN [I] .L]; 
    } 
    ソート(LEN + 1 + lenは、1 +をK、CMP)
     するための(Rは、int型、I = N; I> = 1。- I){
        もし(!和[I])
            F [i]は = Fの[I + 1 ] + 1 {
             ための(RのINT J = 1 ; J <=和[I]; ++ j)は{ 
                F [I] = MAX([I]、fはF [iが+ LEN [ID]を.V])。
                ++ ID; 
            } 
        } 
    } 
    のprintf(" %dの"、F [ 1 ])。
}

T5:LGP1233

S5:彼は実際には??? 2つの要件を決定していきます秋ずにデュアル最も長いシーケンスに必要な脳の揚水試験は、LGを考えると、なぜ私は知らないやさしい都市に別の、確定ソートを主張します。この要求に基づいています。

#include <iostreamの> 
する#include <アルゴリズム> 
の#include <CStringの> 
する#include <cstdioを>
 使用して 名前空間STD。
#define E出口(0)
 の#define Rレジスタ
 int型 N、Q [ 5010 ]、レンス。
構造体扁{
     int型のL、W。
} LEN [ 5010 ]。
BOOL CMP(扁、扁b)は{
     場合(AL == BL)
         リターン AW <= BW。
    他に 返す AL < BLは、
} 
int型の検索(INT X)
{
    int型、L = 1、R = レンス。
    一方、(L < R){
         int型ミッド=(L + R)>> 1 もし(Q [中間] <= X)R = ミッド。
        リットル=ミッド+ 1 ; 
    } 
    戻りL。
} 
int型のmain()
{ 
    freopenは(" STICK.in "" R " 、STDIN)。
    freopenは(" STICK.out "" W " 、STDOUT)。
    scanf関数(" %d個"、&N)
    以下のための(R用のint i = 1 ; iは= N <; ++ I)
        のscanf(" %d個の%dを"&LEN [I] .L&LEN [I] .W)。
    ソート(LEN + 1 lenを、+ 1 + N、CMP)。
    Q [ ++レンス] = LEN [ 1 ] .W。
    以下のための(R用のint i = 2 ; iは= N <; ++ I)
    { 
        場合(LEN [I] .W < Q [レンス])
            Q [ ++レンス] = LEN [I] .W。
        そう であれば(LEN [I] .W> = Q [レンス]){
             int型ID = (LEN [I] .W)を見つけます。
            Q [ID]は = [I] .W LENを 
        } 
    } 
    のprintf(" %dの" 、レンス)。
    リターン 0 ; 
}

PS:①:要素が同じであるフラグは、小旗プリアンプの別の一種なので、単調スタック長が小滴最長シーケンスの開発に努めます。

   ②:バイナリ検索は、それが関係の左に等号の右側に注意を払うことを意図トピックその他の要求事項を、書かれているよりも、メンテナンスシーケンスが単調に最初の小さな減少見つけるために「それはその大きな問題よりも小さくなっているよりも。」

T3は、T4は、修正する時間を持っています。

おすすめ

転載: www.cnblogs.com/xqysckt/p/11370152.html