Codeforces VP /補充小さなノート(連続充填穴)

Codeforces VP /補充小さなノート

1149 C.ツリージェネレータ

各エクスチェンジの直径を維持した後、各エクスチェンジに、あなたに2つのブラケットをツリー括弧のシーケンスを与えます。

シーケンスブラケットを考慮し、ツリー経路情報を維持、左括弧として考えられている( - 1 \)\、見て右ブラケット\(1 \) 次いで上向き垂直経路部が配列セグメントとブラケットのように表すことができます。 、垂直下方パス配列の部分は、ブラケット部と反対側の数と見なすことができます。私たちは、連続の期間が続いていると連続悪いの期間に続いて減算で木の直径を維持したいです。具体的には、その
\ [\最大_ {\ FORALL
[L、R]} \ {\ sum_ {i = L} ^ KW [i]は- \ sum_ {i = K + 1} ^ [RW I] \} \] 選択した間隔がツリーのパスを表す場合、単純に証明することはできない、木のラインを維持するために、この式、方程式と確かに最適解に連れて行きます。メンテナンスの必要性は、いくつかのマルチレコードの情報を更新する際に、メンテナンス間隔と最大のサブセグメントのように、少し面倒です。複雑\(\ mathcal O(N- \ N-ログ)\)

1149のD.放棄の道

\(\ N-)\(Mの\)エッジ及び2つだけ右側\(A、B(< B)\) 単純なグラフである\(Gが\)、\ (\ FORALL I \ )を取得\(G \)すべての最小スパニングツリー、\(1-I \)最小経路長を。\(1 \ n型のLeq \のLeq 70 ,. 1-N- \のLeq M \のLeq 200 \です)

質問は、私が最初に最小スパニングツリー見つけ、間違ったアプローチを考えるようになった(B \)\辺の数が示さ\(k個の\を)を決定し、\(1 \)ではないを通じて様々なポイントへより\(K \)文書\(B \)最短側面。このアプローチの間違ったすべてのパス上の始点に表示することができるが、ということである\(\)リングの側面は、パス切断しない\(B \)側を、そのように長いエンドポイントが経路上に開始することができるであろうように割礼。

私はまた、練習中に別のものを考慮し、後でアイデアは正の解に拡張することができることを学びました。すべて考えてみましょう\(\)このブロックにブロックユニコムユニコムを出た後のスパニングツリーパス場合側ユニコムは以来、スパニングツリーを最小スパニングツリー、必ずしも、証明するのは困難ではない、いくつかのブロックを縮小選択されたリングが切断される\(Bの\)側。このとき、強力な直接圧縮のような\(DP \)複雑です\(O(2 ^ nm)を \) 。

ユニコムブロックサイズの場合はさらなる分析の下、\(\のLeq 3 \)は、このパスがある場合でも、ブロックを残し、その後、中国聯通、中国聯通のブロックに来たために、このパスは、必ずしも最短でもあり、それブロック内部ユニコム理由最も長い辺れる\(図2A \)は、上述した動作は必要ない\(2B \)をそれは無視することができる秋直接サイズ\(\当量3 \)制限ユニコムブロック、最適化の複雑\(\ mathcal O(2 ^ {\ {N-FRAC。4} {M}})\)

1168℃、到達可能性

長有する\(N- \)シーケンス\(\ A) \(I、J \)が有向エッジである場合にのみときとの間に存在\(I <jの、A [ i]が\テキスト{と}を[J]> 0 \) それぞれ所定の\(X、Y(X <Y)\)問い合わせから\(X \)出発が到達可能かどうか\(Y \)

ビット単位の検討、現在の数\(A [X] \) 直接バック共通位置とを有しているすべての数字に到達することができます。明らかに、ビット毎に、正面の数が後者の数以上に到達するためには、すべての番号を維持することのみが必要である\([X] \)特定到達しなければならない\(1 \)最前数場所。最後に、かどうか\([Y] \)ビットの\(1 \する)ことができるかどうか([X] \)\その前に到達します。複雑\(\ mathcal O(N \ ^ログN-2)\)

1168のD.アナグラムパス

バイナリツリーがあり、それぞれの側は、小文字または持っている\(を「?」\) ルートへのパス上のすべての葉を維持するために必要な変更のエッジ上の各文字、\を(「?」\)任意の小文字を入力するにはあなたが可能であれば、合意に達するために文字を並べ替えることができた場合、出力に必要出現の可能な最大数の各文字。

すべての葉が同じ深さでない場合はまず、サイドの文字を変更するには、どんなには何の解決策ではありません。

その後、許可\は(F [X] [C ] \) のすべてを表し、\(X \)をするサブツリー内葉(X \)\パス上の文字(C \)\最大数、\(LEN [ X] \)を表し\(x \)をする葉から。

私たちは、一貫性のあるIFFを達成するために再配置するのに証明可能な一般化することができます


\ [\ FORALL X \ sum_ {
C} [X] F [C] \当量LEN [X] \] 際に考慮する(X \)を\明確に必要かつ十分な葉です。任意の非リーフノードの場合、\(X \) 今回は明らかに必要、すべてのポイントが条件を満たしてそのサブツリーを仮定。まず、それが1であれば、それは正当な間違いだろう、新しい方のためのミックスに追加し、元の行までのすべてのパスの妥当性を検討します。二つのエッジは、発現満たすように変更する必要がある場合\を([X] [C F ] \) 数\(<2 \)次いで、疑問符充填の他方の側からより多く存在することになります。

直接的な暴力のメンテナンス([X] [C F \ ] \) 複雑です\(O(NQ)\)が、以前に一つだけの子ノードと、ノードは、子供に直接組み込むことができ、私たちを触発示しますそれは答えには影響を与えません。そこ小さなルーチンは、バイナリツリーが続いており、その組み合わせた場合、バイナリツリーがないよりも深い\(\ mathcal O(\ sqrtのN-)\)

唯一の息子ノードバイナリツリーが存在しない場合は、最初のことを証明し\(Iは\)深層はより大きくなければならない\(I-1 \) その場合に、最大の深さまでの深層、\(\ mathcal O(\ N-SQRT)\) 直接暴力修正するように\を(DP \)値と、の複雑\(\ mathcal O(Q \ N-SQRT)\) もちろん、直接ダイナミック\(DP \は)も可能です。

1188 D.は等しくします

シーケンス\(\) 各とることができる\(1 \)数としたコスト\(2 \)は、すべての数のパワーが考慮の必要な最小数に等しくなるために必要な。

まず、\(\)小から大に、もし我々は\(A_N \)最後に追加\(S \) その後、\(a_iを\)最後に追加\(S + A_N-a_iを\ ) 。その問題は、選択された数に変換する\(S \)最小限にするために、\(\ sum_} ^ {N-I「ビットを1 =(S + A_N-a_iを)\)

考えてみましょビット演算\(DP \)決定\(S \)すべての選挙で\(0 \)または投票する\(1 \)を処理する最後の寄与がに等しいので、\(A_N-a_iを、S \ ) 意思決定の中央値の和とキャリーは、我々はまた、数が現在の状態に切り上げられるものを記録する必要があります。それが前に考慮に入れると仮定すると、見つけることができます\(K \)の位置、ビットの現在の数がに従ってください運ぶ\(\モッズ2 ^ k個\ ) 、ソート結果の下に接尾辞\(DP \)の時に記録長さ、複雑さへの接尾辞\(\ mathcal O(N- \ N-ログ)\)

おすすめ

転載: www.cnblogs.com/mangoyang/p/11482903.html