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
ngng628
March 12, 2023
Programming
0
160
競プロ初心者会 | 累積和と全探索
累積和の復習と全探索の解説スライドです
ngng628
March 12, 2023
Tweet
Share
More Decks by ngng628
See All by ngng628
ちょっと変わったキーボード入力の話
ngng628
0
440
RSSリーダーを作ろう!
ngng628
0
320
Other Decks in Programming
See All in Programming
Patterns of Patterns
denyspoltorak
0
410
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
180
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
9
2.6k
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.5k
クラウドに依存しないS3を使った開発術
simesaba80
0
210
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.4k
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
330
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
200
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4.9k
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
2
190
How Software Deployment tools have changed in the past 20 years
geshan
0
31k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
880
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
130
Agile that works and the tools we love
rasmusluckow
331
21k
Faster Mobile Websites
deanohume
310
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
35
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
The SEO Collaboration Effect
kristinabergwall1
0
320
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)
| 複雑な全探索 幅優先探索での実装
| 複雑な全探索 複雑な全探索ができる →ある状態からある状態への変化が分かれば、変化を全列挙できる 共通点 ・実装が比較的楽 ・最短距離が(簡単には)求められない 再帰関数 ・実装が比較的面倒 ・ある状態に至る最短距離が求められる
(複雑な全探索 + 最短経路問題が解けるイメージ) 幅優先探索