タグ

algorithmとdpに関するdannのブックマーク (10)

  • 指数時間アルゴリズム入門

    2. 自己紹介 TopCoder: ◎wata TCO2010Marathon優勝など Twitter: @wata_orz 東京大学情報理工学系研究科コンピュータ科学専攻 理論計算機科学 (アルゴリズムの理論的な解析とか) プログラミングコンテスト チャレンジブック 2 3. 日の内容  NP困難問題を解くためのアルゴリズムを扱います 𝑂𝑃𝑇 𝐼 ≤ 𝐴 𝐼 ≤ 𝑐𝑂𝑃𝑇(𝐼) 近似アルゴリズム ヒューリスティック 𝑓 𝑘 𝑝 𝑛 FPT アルゴリズム max⁡ 𝑐𝑥|𝐴𝑥 ≤ 𝑏, 𝑥: 整数} { 𝑂∗ 𝑐 𝑛 整数計画 厳密指数時間アルゴリズム 3 4. 効率的な指数時間アルゴリズム  何の指数?  頂点数? 辺の数? それとも… • 2 𝐸 のアルゴリズムはまず役に立たないが,2 𝑉 のアル ゴリズムならコンテストでもよ

    指数時間アルゴリズム入門
  • DPとかメモ化再帰とか - komiyamの日記

    以下の内容は間違いを含んでる可能性が高い。 状態数が少ない問題ではDPやメモ化再帰による解法が結構あるけど、少し整理してみよう。 まず、大前提としてDPやメモ化再帰が使える必要条件はDAGになっていることだろう。ここで考えているグラフは、各状態を頂点、状態遷移を有向辺としたグラフである。確率とかの問題だと辺に遷移確率の重みがつくと考えれば良い。 特に、最小値を求める系の問題では必要十分と言ってもいいかもしれない(何か三角不等式っぽいのが成り立っていればいいような気がする。でも組み合わせの数を求める系だと上手く行かないのでやっぱり嘘か?)。 DPというのは、DAGに対してトポロジカル順序の小さい順に値を決定していくことに他ならない。 メモ化再帰というのは、もらうDPの特殊形式で余計な所を評価しないlazyなアルゴリズムと言えるかもしれない。 こうして書いてみると、DPの欠点が明らかになる。そ

    DPとかメモ化再帰とか - komiyamの日記
  • DPの話 (追記) - aizuzia

    前回の記事に対してみやむーさんから素晴らしい反響を頂いたので、こちらにレスポンスする形で追記してみます。 そもそも前回の「DPの話」は、こちらのエントリと内容が全く同じなのでした。全然気付いてなくてごめんなさい・・・。 ループのメリットとメモ再帰のメリット 「メモ再帰のメリットは計算が遅延的に行われること」とのことでした。メモ再帰では、「最終的に求めたい状態には絶対に遷移し得ないノード」への計算は行われません。そのようなノードが数多くある問題では、メモ再帰が速くなりうる。なるほど。 似たようなことがループでは絶対できないというわけではありません。配るDPにおいて、配る元のノードの値が初期値 (最短経路だったら inf とか、経路数だったら 0 とか) のままだったら、配っても意味が無いのでやめる。このような枝刈りを加えると、「初期状態から絶対遷移しないノードから」の計算は行われません。 が

    DPの話 (追記) - aizuzia
  • DPの話 - aizuzia

    この記事は Competitive Programming Advent Calendar のために作成されました。 「DP (Dynamic Programminng: 動的計画法) がよく分からない」というつぶやきをよく目にします。何から何まで分からないというわけではないけど、 「こういうDPをすれば解けるよ」と説明されれば理解できるけど、一からそれを思い付けない メモ再帰だと書けるけどループだと書けない、またはその逆 とかいう。 この記事は、DPという技法をより深く理解する手助けをすることを目的として書かれています。これを読めばどんなDPの問題もさくさく解ける・・・ことはないと思いますが、あんまり悩まずに実装できるようになるぐらいの効果はあるんじゃないかなと思います。想定する読者層は、簡単なDPの問題をいくつか解いたことがある、TopCoderレーティング 1500 未満ぐらいの人と

    DPの話 - aizuzia
  • DPとかメモ化再帰とか(2) - komiyamの日記

    Competitive Programming Advent Calendarでtayama0324さんが素晴らしい記事を書いておられました。なので自分もそれに触発されて、以前書いた記事の続きを書いてみました。以下はtayama0324さんの記事を読んでいることを前提に話をします。 DPのメリットとメモ化再帰のメリット 基的にはtayama0324さんが触れているメリットでつきていると思うんですが、自分は次のようなメリットもあると考えています(筋から離れるだけなので、tayama0324さんも知っていた上で敢えて書かなかっのだと思います)。 DPのメリット 配列の再利用でメモリが節約できることがある。 データ構造を工夫しての高速化が書きやすい。 メモ化再帰のメリット 評価が遅延的に行われる。 ひとつずつ説明します。 配列の再利用 これは非常によく知られていることだと思います。配列ではあ

    DPとかメモ化再帰とか(2) - komiyamの日記
  • DPの練習として良さそうなやつ - kyuridenamidaのチラ裏

    いろいろなDPがありますが、これもまとめとくと良いと思ったので。僕はDPは得意ではないですが、それでもスキルアップに繋がったなあと感じた問題をピックアップしておきます。 DPかメモ化再帰か――ループの中で色々場合分けとかしなきゃいけなかったり、順序付けしにくかったりするDPは出来るならメモ化したほうがバグ減ったり実装楽だったりします。メモ化再帰は初期化ミスとかが無くて済むので。再帰が深くなりそうだったり、特殊なテクニック(ある区間をまとめて足したりする)とかする場合はやはりDPじゃないとだめですが、大体はメモ化再帰で代用が効きます。ではDP問の紹介。 (ネタバレ注意) 簡単な数え上げタイプ・Kannondou[☆]・A First Grader[★] 最長増加部分列タイプ( O(n log n)解法が存在するのでググったり蟻とかを読むと良い。 )・ビルの飾りつけ(2007年度JOI春合宿

  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - kyuridenamidaのチラ裏

    効率的な別解とか存在する問題もあるけど演習によさそうなやつをピックアップ。そのアルゴリズムじゃないと解けないわけではないって問題も多いので注意。(ただ演習するのには都合が良いかなと)※個人的難易度をつけてみました。とても主観的な難易度付けなので気にせず解いてみてください。深さ優先探索・Balls[☆]・Sum of Integers[☆]・The Number of Island[☆]・Block[★]幅優先探索・Mysterious Worm[★]・Cheese[★]・Seven Puzzle[★☆]・Stray Twins[★★]・Deven-Eleven[★★]・Summer of Phyonkichi[★★☆]ワーシャルフロイド法(For 全点対最短路問題)・Traveling Alone: One-way Ticket of Youth[★]・A reward for a Car

  • プログラミングコンテストでの動的計画法

    2. はじめに • 「動的計画法」は英語で 「Dynamic Programming」 と言います. • 略して「DP」とよく呼ばれます. • スライドでも以後使います. 4. ナップサック問題とは? • n 個の品物がある • 品物 i は重さ wi, 価値 vi • 重さの合計が U を超えないように選ぶ – 1 つの品物は 1 つまで • この時の価値の合計の最大値は? 品物 1 品物 2 品物 n 重さ w1 重さ w2 ・・・ 重さ wn 価値 v1 価値 v2 価値 vn 5. ナップサック問題の例 品物 1 品物 2 品物 3 品物 4 U=5 w1 = 2 w2 = 1 w3 = 3 w4 = 2 v1 = 3 v2 = 2 v3 = 4 v4 = 2 品物 1 品物 2 品物 3 品物 4 答え 7 w1 = 2 w2 = 1 w3 = 3 w4 = 2 v1 = 3 v

    プログラミングコンテストでの動的計画法
  • Xoilac TV ️️- Trực tiếp XoilacTV bóng đá, xem TTBD hôm nay HD

    Xoilac TV ️️- Trực tiếp XoilacTV bóng đá, xem TTBD hôm nay HD Xoilac tv xem trực tiếp bóng đá Euro 2024 - Kênh xôi lạc tv phát trực tuyến bóng đá miễn phí với chất lượng full HD - Xem bóng đá hôm nay cùng đội ngũ BLV hot nhất. Link xem bóng đá Xoilac cập nhật ngày 14-10-2024 Ngày nay, nhu cầu xem bóng đá trực tuyến trên mọi nền tảng ngày càng gia tăng bởi nó mang lại rất nhiều

  • Data Structures and Algorithms with Object-Oriented Design Patterns in Python

    Xoilac TV ️️- Trực tiếp XoilacTV bóng đá, xem TTBD hôm nay HD Xoilac tv xem trực tiếp bóng đá Euro 2024 - Kênh xôi lạc tv phát trực tuyến bóng đá miễn phí với chất lượng full HD - Xem bóng đá hôm nay cùng đội ngũ BLV hot nhất. Link xem bóng đá Xoilac cập nhật ngày 14-10-2024 Ngày nay, nhu cầu xem bóng đá trực tuyến trên mọi nền tảng ngày càng gia tăng bởi nó mang lại rất nhiều

  • 1