CodeForces 1204E「ナターシャ、サーシャとプレフィックス和」(動的プログラミングまたは数学の組み合わせ - アプリケーションカトレアの数)

 

ポータル

 

•問題の意味

  由 n 一  及び  -1 $ C_ {N + M} ^成る {N} $の配列。

  プレフィックスとすべてのシーケンスの最大の合計。

  そして、最大値と最小値の接頭語のためにされてい 0;

•問題解決

  ; $(i、j)はI-1の配列で表される$、J -1、いずれかの定義

  $(I、J)$合計$ C_ ^ {I} $異なる組み合わせ{iがjで+}。

  $(I-1、j)は$合計$ C_ {iがJ-1 +} ^ {I-1}は、異なる組み合わせを$。

  $(I、J-1)$合計$ C_ ^ {I}は異なる組み合わせを$ {iがJ-1 +}。

  $(I-1、j)の両方が$ C_を$場合{iがJ-1 +} ^ {I-1} $と$(iは、J-1)$ C_ $ {iが+でJ-1} ^ 1または-1に挿入されるの可能な組み合わせの{I} $の先頭または末尾。

  すなわち、$である(i、j)は、異なる組み合わせの種類の数を$、すなわち$ C_が{iが+ J} ^ {I} = C_ {iが+ J-1} ^ {I-1} + C_ {I + J-1} ^ {I} $。

 

  n個の範囲は、メートルの($ \当量2000 $)は、この質問が解決されるDPの使用を検討します。

  まず、$で表される$のDP [I] [J] $結果(i、j)は$ $ C_からなるを定義^ {I} $配列、全ての配列と最大プレフィックスを加算{iがjで+} ;

  上記の予備知識は、$(I-1、J)$と$(i、j-1)の取得$で$(i、j)は$を考えるのは簡単です。

  それは、言うことであるDPを$ [I] [J] $ DP [I-1]〜[J] $とすることにより$ $ DP [I] [J-1] $から転送されました。

  $によって$(i、j)は$(I-1、J)$と$(I、J-1)$は終わりかの先頭に挿入するので1 getまたは-1は、最終的にそれが冒頭に挿入するかの端部に挿入されましたか?

  質問の意味が最大プレフィックス和を作るしようとしているので、そのため、私たちは初めに1または-1の挿入を検討します。

    • $(I-1、j)の開始時に$ 1は$ C_ {iがJ-1 +} ^ {I-1} $配列が接頭辞されていることを1だけ増加最大値を意味し、挿入され、次いで
      • $のDP [I] [J] + = DP [I-1]〜[J] + C_ {iがJ-1 +} ^ {I-1} $
    • $ C_は^ {I} $接頭辞配列は、その後、1の最大値を低減する{iがJ-1 +}という意味$(I、J-1)$挿入-1の開始時
      • $のDP [I] [J] + = DP [I]、[J-1] -C_ {iが+ J-1} ^ {I} + H [I] [J-1] $

おすすめ

転載: www.cnblogs.com/violet-acmer/p/11718617.html
おすすめ