Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AOJ 0022 Maximum Sum Sequence 解説
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kagamiz
March 30, 2013
Programming
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AOJ 0022 Maximum Sum Sequence 解説
OkNCT-ICT 2013 春合宿 Day 6 (らしい) に解説したもの.
kagamiz
March 30, 2013
Transcript
10 slides
AOJ 0022 Maximum Sum Sequence 解説 @kagamiz
www.company.com 問題概要 • 長さがn の数列が与えられます. • 連続する1 個以上の項の和の最大値を求めてください. • n
≦ 5000 (Challenge ケースではn ≦ 10^6) • |ai| ≦ 100000
www.company.com 入力例の解析 • n = 7 数列 = {-5 -1 6 4 9 -6 -7} •
赤の部分列を選ぶと最適で, 和は19 になる. {-5 -1 6 4 9 -6 -7}
www.company.com 入力例の解析 • n = 13 数列 = {1 2 3 2 -2 -1 1 2 3 2 1 -2 1} •
赤の部分列を選ぶと最適で, 和は14 になる. {1 2 3 2 -2 -1 1 2 3 2 1 -2 1}
www.company.com 入力例の解析 • n = 3 数列 = {1000 -200 201} •
赤の部分列を選ぶと最適で, 和は1001 になる. {1000 -200 201}
www.company.com O(n^3) 解法 • すべての区間を試す. • 区間は左と右を決めれば一意に定まる ← O(n^2) 個
• 左から右までをfor 文で和を取る ← O(n)時間 • こうして調べた和の中の最大値が答え. • n ≦ 200 までならOK.
www.company.com O(n^2) 解法 • O(n^3) 解法の何が無駄だったか? • どの区間が最大になるかはよく分からないか ら、O(n^2) 個すべてを試したい.
• “左から右までをfor 文で和を取る ← O(n)時間” • これを高速にしよう
www.company.com O(n^2) 解法 • 累積和配列の利用. • S[i] = a[1] +
a[2] + … + a[i] という配列を用意. • S[1] から順番に計算するとO(n) 時間で構築できる. • 区間[l, r] の和はS[r] – S[l – 1] で求まる. • よって, 2 重ループがもっとも重くO(n^2) 時間となる. • n ≦ 5000 までならOK.
www.company.com O(n) 解法 • Challenge ケースでも満点を取るためにはどうすれば 良いか? → 動的計画法の利用. •
dp[i] : 区間[x, i]での部分列の和の最大値(a[i] は必ず含 む)とすると, dp[i] = max(dp[i – 1] + a[i], a[i]) となる. • 答えはdp[i] の最大値. • 今までの最大値を利用するか, 自分から始めるか.
www.company.com O(n) 解法 • n = 13 数列 = {1 2 3 2 -2 -1 1 2 3 2 1 -2 1}
dp[i]= {1 3 6 8 6 5 6 8 11 13 14 12 13} • これは, for 文で最初から計算すると線形時間で求まる. • これで, Challenge ケースでも満点が取れる! • お疲れ様でした.
More Decks by kagamiz
See All by kagamiz
KCS v2. の開発
kagamiz
0
300
internship final presentation
kagamiz
0
1.4k
internship-middle term presentation
kagamiz
0
1.2k
すうがくのまほう
kagamiz
0
390
ご当地料理の紹介
kagamiz
0
510
オンラインジャッジシステムの実装
kagamiz
0
1.3k
AOJ 0557 A First Grader 解説
kagamiz
0
1k
JOI2013 本選1 Illumination 解説
kagamiz
0
430
AOJ 0186 Aizu Chicken 解説
kagamiz
0
350
Other Decks in Programming
See All in Programming
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
260
Next.js: The final boss of Web Performance
guaca
0
410
はじめてのPLATEAU
nokonoko1203
1
650
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.5k
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
240
GraphQL の onError と Nullability のこれから
quramy
0
220
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
190
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
210
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
570
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
310
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
300
Featured
See All Featured
Crafting Experiences
bethany
1
440
Discover your Explorer Soul
emna__ayadi
2
1.3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
The Pragmatic Product Professional
lauravandoore
37
7.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
Marketing to machines
jonoalderson
1
6k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k