8.19

巧み転換ベクターおよびヒープ(ヒープ大ルートルート小さいパイル)

トリガー:動的、大部分kを求める(実際には、大きな中央値ダイナミクス(1 + N)/ 2を計算することです)

P1168 中位数

オープン加数ベクトル、電流が奇数の場合、出力V [(I-1)/ 2]、注意が0ベクトルから析出し始めました。

P1801ブラックボックス_NOIガイド2010増加(06)

実際のヒープのトップ:コード

Luogu P2949 [USACO09OPEN]ジョブスケジューリング作業計画

まず、限り、貪欲な基礎問題解決のアイデアを思い付くことは困難ではないとして:それはすべての作業に時間がかかるため、彼らがいる限り、我々は選挙作業の高収益を取得しようとして、同じであり、選択した各作業のために、我々はそれがより多くを作ってみますそれは、再び時間の作業の終わり近くです

制約の並べ替え、などtreapなどのデータ構造を(維持するために特定の他の制限を使用するために、:しかし、我々はよく維持されていない2つの条件は、これは非常に古典的なアプローチがある2つの制約の対象でもありますツリーライン、フェンウィックツリーのような)が、これはQAQ今日我々の議論の範囲にありません

どのようにこれら二つの条件を検討し、「有機団結。」

思考の並び替え問題ありません、我々はそう私たちの第二貪欲の考えを維持するために、各ジョブの時間を終了し、それを並べ替えることができます。

だから、から生じる紛争のためにこれを行うには:Dでの仕事のために締め切り、我々は0〜d秒に可能性を持っているが、すべてのアップ計上されている(同じことが複数のタスクの期限でもよいです)

このような競合を解決するために、それは性的なことのほとんどに答える確保するためにどのように?

直感的なアイデアは、利益の作成を選択し、その後、我々はすべての現在選択されている作品は、比較入れているということで、最低限この、作業の最小利益を破棄し、その後、(この決定は、現在の仕事の非常に高い値であると仮定して)仕事のをオリジナル作品は、その位置に置きます。(私たちは時間の終わりをソートしているので、現在の意思決定の前に、そのタスク完了時間を放棄する期限がで働かなければならないので)

しかし、最大10 ^ 6のnの大きさのために、O(N ^ 2)複雑さは、上記と併せて、明らかに受け入れられない、読者が思い付くことは困難ではないはず、あなたは使用することができます最適化するために、スタックを、この操作を

我々はこの仕事を選んだ後、に現在のジョブ小さなルートパイル(この質問は、ジョブの実行時間は、時間の単位であるため)スタック内の要素であれば、現在の仕事の期限に等しいより大きい場合、我々あなたは、仕事の現在の値が大きい場合には、あなたが新しい仕事に積み、その後、ヒープのトップを開くことができ、作業のヒープの最上部に現在の共同作業要素マイナスヒープの頂上への答えを、現在の仕事の価値を比較することができます(ヒープに要素が答えの値に蓄積されたヒープの頂上以降)値。要素が直接そうようなヒープに反応器内のカットオフ時間未満である場合

これまでのところ、我々はO(nlogn)することができました

このタイトルの効率

そして、この質問によって、私たちは見つけることができる唯一のアウト考えるのは貪欲当社の業務の時間計算量を最適化するには、我々はヒープを使用しました。我々は以前に言ったように、特定の難しさほとんどのトピックで、ヒープが最適化アルゴリズムのための「道具」と表示されますのアイデンティティ、(ほとんどの時間は貪欲である)時の複雑さ、などがあります

おすすめ

転載: www.cnblogs.com/sjsjsj-minus-Si/p/11635387.html