Submit Search
Upload
動的計画法
•
21 likes
•
25,930 views
京大 マイコンクラブ
Follow
競技プログラミング練習会2014 Normalで使ったスライドです。基本的な動的計画法の考え方について説明しています。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 34
Download now
Download to read offline
Recommended
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
Chokudai search
Chokudai search
AtCoder Inc.
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
Recommended
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
Chokudai search
Chokudai search
AtCoder Inc.
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
様々な全域木問題
様々な全域木問題
tmaehara
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
RMQ クエリ処理
RMQ クエリ処理
HCPC: 北海道大学競技プログラミングサークル
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
直交領域探索
直交領域探索
okuraofvegetable
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
Proktmr
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
双対性
双対性
Yoichi Iwata
最適化の手前の数学
最適化の手前の数学
俊介 後藤
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
Hiroki Mizukami
More Related Content
What's hot
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
様々な全域木問題
様々な全域木問題
tmaehara
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
RMQ クエリ処理
RMQ クエリ処理
HCPC: 北海道大学競技プログラミングサークル
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
直交領域探索
直交領域探索
okuraofvegetable
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
Proktmr
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
双対性
双対性
Yoichi Iwata
What's hot
(20)
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
様々な全域木問題
様々な全域木問題
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Rolling hash
Rolling hash
ウェーブレット木の世界
ウェーブレット木の世界
明日使えないすごいビット演算
明日使えないすごいビット演算
文字列検索のいろいろ
文字列検索のいろいろ
Rolling Hashを殺す話
Rolling Hashを殺す話
Union find(素集合データ構造)
Union find(素集合データ構造)
RMQ クエリ処理
RMQ クエリ処理
色々なダイクストラ高速化
色々なダイクストラ高速化
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
最大流 (max flow)
最大流 (max flow)
直交領域探索
直交領域探索
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
目指せグラフマスター
目指せグラフマスター
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
双対性
双対性
Similar to 動的計画法
最適化の手前の数学
最適化の手前の数学
俊介 後藤
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
Hiroki Mizukami
Pfds20120304
Pfds20120304
Seizan Shimazaki
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
Shiqiao Du
T77 episteme
T77 episteme
えぴ 福田
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
sleepy_yoshi
全探索
全探索
Ryunosuke Iwai
AtCoder Regular Contest 017
AtCoder Regular Contest 017
AtCoder Inc.
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
K2PC Div1 E 暗号化
K2PC Div1 E 暗号化
Kazuma Mikami
cp-5. 繰り返し計算
cp-5. 繰り返し計算
kunihikokaneko1
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
sleepy_yoshi
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
Similar to 動的計画法
(13)
最適化の手前の数学
最適化の手前の数学
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
Pfds20120304
Pfds20120304
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
T77 episteme
T77 episteme
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
全探索
全探索
AtCoder Regular Contest 017
AtCoder Regular Contest 017
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
K2PC Div1 E 暗号化
K2PC Div1 E 暗号化
cp-5. 繰り返し計算
cp-5. 繰り返し計算
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
More from 京大 マイコンクラブ
テキストファイルを読む💪 第1回
テキストファイルを読む💪 第1回
京大 マイコンクラブ
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
京大 マイコンクラブ
Common Lisp入門
Common Lisp入門
京大 マイコンクラブ
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
京大 マイコンクラブ
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
Geometry with Unity
Geometry with Unity
京大 マイコンクラブ
セミコロンレスc++
セミコロンレスc++
京大 マイコンクラブ
エンジニアと健康
エンジニアと健康
京大 マイコンクラブ
女の子になれなかった人のために
女の子になれなかった人のために
京大 マイコンクラブ
Pietで競プロしよう
Pietで競プロしよう
京大 マイコンクラブ
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
京大 マイコンクラブ
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
京大 マイコンクラブ
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
京大 マイコンクラブ
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
京大 マイコンクラブ
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
Altseed
Altseed
京大 マイコンクラブ
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
京大 マイコンクラブ
More from 京大 マイコンクラブ
(20)
テキストファイルを読む💪 第1回
テキストファイルを読む💪 第1回
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
Common Lisp入門
Common Lisp入門
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
Geometry with Unity
Geometry with Unity
セミコロンレスc++
セミコロンレスc++
エンジニアと健康
エンジニアと健康
女の子になれなかった人のために
女の子になれなかった人のために
Pietで競プロしよう
Pietで競プロしよう
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
Altseed
Altseed
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
Recently uploaded
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
Recently uploaded
(8)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
動的計画法
1.
動的計画法
2.
動的計画法 ●問題を複数の部分問題に分割して、部分問題の 計算結果を利用して元の問題を解く手法 ●効率的なアルゴリズムを作るときによく使われ る一般的な方法
3.
動的計画法 ●例 フィボナッチ数の計算 ●フィボナッチ数の定義通りプログラムを書くと こうなる int fib(unsigned int
n) { if (n == 0) return 0; if (n == 1) return 1; return fib(n-1) + fib(n-2); } F0=0, F1=1, Fn=Fn−1+Fn−2 (n≥2)
4.
動的計画法 ●これだと、 ぐらいまでしか計算できない ● の指数時間アルゴリズム n = 40 fib(8) =fib(7)
+ fib(6) =(fib(6) + fib(5)) + (fib(5) + fib(4)) =((fib(5) + fib(4)) + (fib(4) + fib(3)) + ((fib(4) + fib(3)) + (fib(3) + fib(2))) =(((fib(4) + fib(3)) + (fib(3) + fib(2))) + ((fib(3) + fib(2)) + (fib(2) + fib(1))) + (((fib(3) + fib(2)) + (fib(2) + fib(1)) + ((fib(2) + fib(1)) + (fib(1) + fib(0))) O(1.619n )
5.
動的計画法 ●計算過程を見ると、何回も同じ引数で函数を呼 び出している ●この函数は同じ引数なら常に同じ値を返すか ら、一度計算した内容を再利用すれば良さそう ●これが動的計画法の基本的アイデア
6.
動的計画法 ●改良版フィボナッチ数の計算 int fib(unsigned int
n) { vector<int> ary(n+1); ary[0] = 0; ary[1] = 1; for(int i = 2; i <= n; ++i) ary[i] = ary[i-1] + ary[i-2]; return ary[n]; }
7.
動的計画法 ● の線形時間アルゴリズムになった ● ぐらいまで対応できる ●もっとも、 ぐらいでint型の整数だとオーバー フローする ● 番目のフィボナッチ数を定数 で割った余りを求 める問題などでつかえる ●実際には対数時間アルゴリズムも存在する O(n) n = 107 n
= 47 n k
8.
動的計画法 ●動的計画法が有効な問題の一つがナップサック 問題 ●問題パターンとしてはよく出題される ●社会での実用上も大事な問題
9.
ナップサック問題 ● 個の荷物があり、それぞれ価値 、体積 で ある。 ●容積 のナップサックがある。 ●体積の合計が を超えない範囲で荷物を詰めた とき、その価値の合計の最大値はいくつか? ●条件 n Pi Vi C C 1≤n≤1,000
1≤Pi≤1,000,000,000 1≤V i≤1,000 1≤C≤1,000
10.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150
11.
ナップサック問題 ●ナイーブ(ばか正直)な解法 ●それぞれの荷物について、ナップサックに入れるか 入れないかの2通りを調べる ●体積の合計が を越えない入れ方の中で、価値が最 大になるものを選ぶC
12.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 0 体積 0
13.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 55 体積 40
14.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 61 体積 26
15.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 116 体積 66
16.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 82 体積 97
17.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 137 体積 137
18.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 143 体積 133
19.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 198 体積 173
20.
ナップサック問題 価値 55 体積 40 価値
82 体積 97 価値 38 体積 19 価値 63 体積 32 価値 61 体積 26 容積 150 合計:価値 217 体積 117
21.
ナップサック問題 ●ナイーブ(ばか正直)な解法 ●実装としては次のようにすると簡潔になる・多少高 速化する ●http://inside/~prime/procon/2014/normal/napsac.cpp ●ナップサックの空きと今何番目の荷物を見ている か、荷物の配列を引数に取る
22.
ナップサック問題 ●ナイーブ(ばか正直)な解法 ● 個の荷物があるとき、調べるのは 通り ●問題の条件は だった ● だとだいたい 年かかる n 2n 3.4×10285 n=1000 1≤n≤1,000 1≤Pi≤1,000,000,000 1≤V
i≤1,000 1≤C≤1,000
23.
ナップサック問題 ●ここで動的計画法を使う ●荷物 を見ていて残り容積が の時の価値の最 大値を記憶しておけば良い ● になり、問題の条件でも時間内に解ける ●実際のコード ●http://inside/~prime/procon/2014/normal/napsac_dp.cpp i v O(nV )
24.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 1 0 2 0 3 0 4 0 5 0 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
25.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 1 0 2 0 3 0 4 0 5 0 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
26.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 1 0 0 2 0 3 0 4 0 5 0 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
27.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 1 0 0 2 0 2 3 0 4 0 5 0 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
28.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 1 0 0 2 0 2 3 0 2 4 0 2 5 0 2 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
29.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 0 1 0 0 0 2 0 2 2 3 0 2 5 4 0 2 5 5 0 2 7 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
30.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 0 1 0 0 0 2 0 2 2 3 0 2 5 4 0 2 5 5 0 2 7 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
31.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 0 0 1 0 0 0 3 2 0 2 2 3 3 0 2 5 5 4 0 2 5 8 5 0 2 7 8 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
32.
ナップサック問題 ●動的計画法で解くイメージ vi 0 1
2 3 0 0 0 0 0 1 0 0 0 3 2 0 2 2 3 3 0 2 5 5 4 0 2 5 8 5 0 2 7 8 価値 2 体積 2 価値 5 体積 3 価値 3 体積 1
33.
補足 ●ナップサック問題であればいつでも動的計画法 を使うわけではない ●条件が のとき、動的計画法では解けないが、ナイーブな解 法を使えば解ける ●条件をよく読んで使い分ける 1≤n≤20 1≤Pi≤1,000,000,000 1≤V i≤1,000,000,000
1≤C≤1,000,000,000
34.
参考文献 ●プログラミングコンテストでの動的計画法 ●http://www.slideshare.net/iwiwi/ss-3578511
Download now