More Related Content
PDF
PDF
PDF
PDF
AtCoder Beginner Contest 023 解説 PDF
AtCoder Beginner Contest 035 解説 PDF
AtCoder Beginner Contest 022 解説 PDF
PDF
What's hot
PDF
CODE FESTIVAL 2015 予選A 解説 PDF
AtCoder Beginner Contest 026 解説 PDF
PDF
AtCoder Beginner Contest 017 解説 PPTX
PDF
PDF
PDF
AtCoder Regular Contest 039 解説 PDF
PDF
PPTX
AtCoder Beginner Contest 002 解説 PDF
PDF
AtCoder Beginner Contest 030 解説 PDF
PDF
PDF
PDF
PDF
PDF
PDF
AtCoder Beginner Contest 010 解説 Similar to 二分探索をはじめからていねいに
PDF
競技プログラミングで用いられる二分探索をC++で実装してみた PDF
PPTX
PDF
PDF
Sec15 dynamic programming PDF
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー) PDF
JOI春季ステップアップセミナー 2021 講義スライド KEY
PDF
PDF
『問題解決力を鍛える!アルゴリズムとデータ構造』出版記念講演 PDF
PDF
AtCoder Regular Contest 043 解説 PDF
AtCoder Beginner Contest 020 解説 KEY
Algebraic DP: 動的計画法を書きやすく PDF
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目) PDF
AtCoder Regular Contest 017 PPTX
PDF
PDF
PDF
AtCoder Beginner Contest 025 解説 More from HCPC: 北海道大学競技プログラミングサークル
PDF
PDF
ACPC 2017 Day3 F: 掛け算は楽しい PDF
PDF
ACPC 2019 Day3 G: Restricted DFS PDF
ACPC 2019 Day3 F: 部分文字列分解 PDF
ACPC 2019 Day3 E: 総和の切り取り PDF
PDF
PDF
PDF
PDF
HUPC 2019 Day2 H: Revenge of UMG PDF
HUPC 2019 Day2 F: MOD Rush PDF
PDF
HUPC 2019 Day1 F: グリッドの番号 PDF
HUPC 2019 Day1 E: 最短経路の復元 PDF
PDF
PDF
HUPC 2019 Day1 B: 自身の 2 倍 PDF
HUPC 2019 Day1 A: four tea PDF
二分探索をはじめからていねいに
- 1.
- 2.
- 3.
二分探索のイメージ
50 13 1927 30 34 39 44 47 56 58 60
●
昇順ソート済みの配列 a の要素について
探索することを考える
●
今回は、47がどこにあるかを探してみよう
- 4.
- 5.
二分探索のイメージ
0 5 1319 27 30 34 39 44 47 56 58 60
lb ubmid
midの要素は47以下である
→ 探索したい数字は配列の右半分にある!
→ 探索範囲を右半分に絞る
※midの要素が47を超える数字の場合は、
探索範囲を左半分に絞る
これの繰り返しを、ub - lbが1になるまで行う
src
- 6.
二分探索のイメージ
0 5 1319 27 30 34 39 44 47 56 58 60
lb ubmid
src
midの要素は47以下である
→ 探索したい数字は配列の右半分にある!
→ 探索範囲を右半分に絞る
※midの要素が47を超える数字の場合は、
探索範囲を左半分に絞る
これの繰り返しを、ub - lbが1になるまで行う
- 7.
二分探索のイメージ
0 5 1319 27 30 34 39 44 47 56 58 60
lb ubmid
src
midの要素は47を超えている
→ 探索したい数字は配列の左半分にある!
→ 探索範囲を左半分に絞る
※midの要素が47以下である数字の場合は、
探索範囲を右半分に絞る
これの繰り返しを、ub - lbが1になるまで行う
- 8.
二分探索のイメージ
0 5 1319 27 30 34 39 44 47 56 58 60
lb ub
lbは、探索する要素
「以下」になる
最後の要素を指す(注意)
ubは、探索する要素を
「超える」
最初の要素を指す
src
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
Cable master
今回は、ub –lbの値を終了条件にするのではなく、
二分探索をした回数を終了条件とする
※二分探索を100回行うと、解の最終的な存在範囲は、
(最初の範囲) ✕ (½) ^ 100 になるため、十分範囲が狭くなる!
- 16.
- 17.
Aggressive cows
1 24 8 9
たとえば…
N = 5, M = 3,
x = {1, 2, 8, 4, 9}
最善で、(最も近い二頭の牛の間の間隔) = 3より、
答えは3
「最小値の最大化」問題!
- 18.
- 19.
- 20.
- 21.
Monthly Expense
たとえば…
N =7, M = 5
100 400 300 100 500 400101
↓
100 400 300 100 500 400101
区間の項の和の最大値は500なので、答えは 500
「最大値の最小化」問題!
- 22.
- 23.
- 24.
- 25.
平均最大化
たとえば…
n = 3,k = 2,
(w, v) = { (2 , 2) , (5 , 3) , (2 , 1) }
答えは (2 , 2) , (2 , 1) の2つを選んだ時の 0.75
※単位重さあたりの価値が大きい物から貪欲に
とるのは間違い!
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.