Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
競プロ初心者会 | 累積和と全探索
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ngng628
March 12, 2023
Programming
0
160
競プロ初心者会 | 累積和と全探索
累積和の復習と全探索の解説スライドです
ngng628
March 12, 2023
Tweet
Share
More Decks by ngng628
See All by ngng628
ちょっと変わったキーボード入力の話
ngng628
0
450
RSSリーダーを作ろう!
ngng628
0
330
Other Decks in Programming
See All in Programming
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
150
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
React Native × React Router v7 API通信の共通化で考えるべきこと
suguruooki
0
100
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
660
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
CSC307 Lecture 10
javiergs
PRO
1
660
dchart: charts from deck markup
ajstarks
3
1k
2026年 エンジニアリング自己学習法
yumechi
0
140
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
680
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Facilitating Awesome Meetings
lara
57
6.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Code Reviewing Like a Champion
maltzj
527
40k
4 Signs Your Business is Dying
shpigford
187
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
68
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Exploring anti-patterns in Rails
aemeredith
2
250
Transcript
./競プロ初心者会
| 3 1 4 1 5 9 2 6 5
3 5 8 9 7 累積和とは A[l] + A[l + 1] + … + A[r-1] いつ使う? l r
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 単位元
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? 3 1
4 1 5 9 2 6 5 3 5 8 9 7 0 3 4 8 9 14 23 25 31 36 39 44 52 61 68 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s[i] = [0, i) a[i] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは s[i] = s[i-1] + a[i] どうやって? s[i] =
[0, i) a[i] s[6] = a[0] + a[1] + a[2] + a[3] + a[4] + a[5] s[2] = a[0] + a[1] - s[6] - s[2] = a[2] + a[3] + a[4] + a[5] 3 1 4 1 5 9 2 6 5 3 5 8 9 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 累積和とは 計算量は? できないこと
| 複雑な全探索
| 複雑な全探索
| 複雑な全探索 3 1 4 1 5
None
|
|
|
|
| 複雑な全探索 ※ 全探索は計算量に注意
| 複雑な全探索
| 複雑な全探索 与えられる盤面
| 複雑な全探索
| 複雑な全探索
| 複雑な全探索
| 複雑な全探索
| 複雑な全探索
| 複雑な全探索 複雑な全探索 →再帰関数?
| 複雑な全探索 (i, j)のときdが最短であると言い切れない → 探索する順番が重要 → 前述の順番に探索すれば容易に最短であると言える
| 複雑な全探索
| 複雑な全探索 (2, 2)
| 複雑な全探索 (2, 2)
| 複雑な全探索 (2, 3) (3, 2)
| 複雑な全探索 (2, 3) (3, 2)
| 複雑な全探索 (3, 2) (2, 4) (4, 2)
| 複雑な全探索 幅優先探索での実装
| 複雑な全探索 複雑な全探索ができる →ある状態からある状態への変化が分かれば、変化を全列挙できる 共通点 ・実装が比較的楽 ・最短距離が(簡単には)求められない 再帰関数 ・実装が比較的面倒 ・ある状態に至る最短距離が求められる
(複雑な全探索 + 最短経路問題が解けるイメージ) 幅優先探索