Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
AI
Uploaded by
AtCoder Inc.
PDF, PPTX
16,885 views
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
Education
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
More Related Content
PPTX
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 030 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 025 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 013 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 026 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 015 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 037 解説
by
AtCoder Inc.
PDF
abc031
by
AtCoder Inc.
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
AtCoder Beginner Contest 030 解説
by
AtCoder Inc.
AtCoder Beginner Contest 025 解説
by
AtCoder Inc.
AtCoder Beginner Contest 013 解説
by
AtCoder Inc.
AtCoder Beginner Contest 026 解説
by
AtCoder Inc.
AtCoder Beginner Contest 015 解説
by
AtCoder Inc.
AtCoder Regular Contest 037 解説
by
AtCoder Inc.
abc031
by
AtCoder Inc.
What's hot
PDF
AtCoder Beginner Contest 017 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 022 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 016 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 019 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 011 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 008 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 033 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 029 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 033 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 018 解説
by
AtCoder Inc.
PDF
双対性
by
Yoichi Iwata
PDF
AtCoder Beginner Contest 023 解説
by
AtCoder Inc.
PDF
abc027
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 007 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 020 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 031 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 021 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 032 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 006 解説
by
AtCoder Inc.
AtCoder Beginner Contest 017 解説
by
AtCoder Inc.
AtCoder Beginner Contest 022 解説
by
AtCoder Inc.
AtCoder Beginner Contest 016 解説
by
AtCoder Inc.
AtCoder Beginner Contest 019 解説
by
AtCoder Inc.
AtCoder Beginner Contest 011 解説
by
AtCoder Inc.
AtCoder Beginner Contest 008 解説
by
AtCoder Inc.
AtCoder Regular Contest 033 解説
by
AtCoder Inc.
AtCoder Beginner Contest 029 解説
by
AtCoder Inc.
AtCoder Beginner Contest 033 解説
by
AtCoder Inc.
AtCoder Beginner Contest 018 解説
by
AtCoder Inc.
双対性
by
Yoichi Iwata
AtCoder Beginner Contest 023 解説
by
AtCoder Inc.
abc027
by
AtCoder Inc.
AtCoder Beginner Contest 007 解説
by
AtCoder Inc.
AtCoder Beginner Contest 020 解説
by
AtCoder Inc.
AtCoder Regular Contest 031 解説
by
AtCoder Inc.
AtCoder Regular Contest 021 解説
by
AtCoder Inc.
AtCoder Regular Contest 032 解説
by
AtCoder Inc.
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
AtCoder Beginner Contest 006 解説
by
AtCoder Inc.
Similar to AtCoder Beginner Contest 035 解説
PDF
Pyramid
by
tomerun
PDF
WUPC2012
by
Dai Hamada
PDF
Indeedなう B日程 解説
by
AtCoder Inc.
PDF
Moon
by
Ken Ogura
PPTX
Arc 010 d
by
Yuma Inoue
PDF
アルゴリズムのお勉強 ダイクストラ
by
hixi365
PDF
Comp geom20131107open
by
Kensuke Onishi
PDF
Maximum flows by ibfs
by
nitmk
PDF
130323 slide all
by
ikea0064
PDF
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
PDF
JOI春季ステップアップセミナー 2021 講義スライド
by
Kensuke Otsuki
PDF
最小カットを使って「燃やす埋める問題」を解く
by
shindannin
PDF
AtCoder Regular Contest 027 解説
by
AtCoder Inc.
PDF
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)
by
Kensuke Otsuki
PDF
AtCoder Regular Contest 043 解説
by
AtCoder Inc.
PPTX
RUPC2015Day2 - J
by
NariyoshiChida
PPTX
TopCoder SRM614 解説
by
EmKjp
PDF
UTPC2012 - K
by
omeometo
PDF
AtCoder Beginner Contest 021 解説
by
AtCoder Inc.
PDF
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
Pyramid
by
tomerun
WUPC2012
by
Dai Hamada
Indeedなう B日程 解説
by
AtCoder Inc.
Moon
by
Ken Ogura
Arc 010 d
by
Yuma Inoue
アルゴリズムのお勉強 ダイクストラ
by
hixi365
Comp geom20131107open
by
Kensuke Onishi
Maximum flows by ibfs
by
nitmk
130323 slide all
by
ikea0064
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
JOI春季ステップアップセミナー 2021 講義スライド
by
Kensuke Otsuki
最小カットを使って「燃やす埋める問題」を解く
by
shindannin
AtCoder Regular Contest 027 解説
by
AtCoder Inc.
「現実世界に活かす数学」 (麻布高等学校、教養総合、数学講義 5 回目)
by
Kensuke Otsuki
AtCoder Regular Contest 043 解説
by
AtCoder Inc.
RUPC2015Day2 - J
by
NariyoshiChida
TopCoder SRM614 解説
by
EmKjp
UTPC2012 - K
by
omeometo
AtCoder Beginner Contest 021 解説
by
AtCoder Inc.
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
More from AtCoder Inc.
PPTX
TCO2017R1
by
AtCoder Inc.
PPTX
AtCoderに毎回参加したくなる仕組み
by
AtCoder Inc.
PDF
Square869120 contest #2
by
AtCoder Inc.
PDF
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
by
AtCoder Inc.
PDF
Chokudai Contest 001
by
AtCoder Inc.
PDF
AtCoder Regular Contest 048
by
AtCoder Inc.
PDF
MUJINプログラミングチャレンジ2016 解説
by
AtCoder Inc.
PDF
DDPC 2016 予選 解説
by
AtCoder Inc.
PDF
arc047
by
AtCoder Inc.
PDF
abc032
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 沖縄ツアー 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 046
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 解説
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 予選B 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 045 解説
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 予選A 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 044 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 028 解説
by
AtCoder Inc.
PDF
天下一プログラマーコンテスト2015 予選B 解説
by
AtCoder Inc.
PDF
天下一プログラマーコンテスト2015 予選A E問題 解説
by
AtCoder Inc.
TCO2017R1
by
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
by
AtCoder Inc.
Square869120 contest #2
by
AtCoder Inc.
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
by
AtCoder Inc.
Chokudai Contest 001
by
AtCoder Inc.
AtCoder Regular Contest 048
by
AtCoder Inc.
MUJINプログラミングチャレンジ2016 解説
by
AtCoder Inc.
DDPC 2016 予選 解説
by
AtCoder Inc.
arc047
by
AtCoder Inc.
abc032
by
AtCoder Inc.
CODE FESTIVAL 2015 沖縄ツアー 解説
by
AtCoder Inc.
AtCoder Regular Contest 046
by
AtCoder Inc.
CODE FESTIVAL 2015 解説
by
AtCoder Inc.
CODE FESTIVAL 2015 予選B 解説
by
AtCoder Inc.
AtCoder Regular Contest 045 解説
by
AtCoder Inc.
CODE FESTIVAL 2015 予選A 解説
by
AtCoder Inc.
AtCoder Regular Contest 044 解説
by
AtCoder Inc.
AtCoder Beginner Contest 028 解説
by
AtCoder Inc.
天下一プログラマーコンテスト2015 予選B 解説
by
AtCoder Inc.
天下一プログラマーコンテスト2015 予選A E問題 解説
by
AtCoder Inc.
AtCoder Beginner Contest 035 解説
1.
AtCoder Beginner Contest
035 解説 AtCoder株式会社 3/19/15
2.
A: テレビ
3.
問題概要と解法 • 幅 W
高さ H のテレビがある • 画面のアスペクト比が 4:3 か 16:9 のどちらか判定せよ • 3W = 4H を満たすならば 4:3 そうでないならば 16:9
4.
別解 • GCD(最大公約数)を求めて割る – 4
と 3 、 16 と 9 は互いに素なので大丈夫 • W と H の両方を割りきれる数を探して割り続ける • 4:3 であるような画面サイズ全てを全探索 – 4:3, 8:6, 12:9, …, 100000:75000 にあてはまるか調べる
5.
B: ドローン
6.
問題概要 • ドローンを上下左右の 4
方向に何回か移動させた • いくつかはどの方向に移動させたか分からなくなった • ドローンの原点からのマンハッタン距離の最大値、 最小値を求めよ
7.
サンプル1: UL? 原点から遠ざかると距離は 3
、近づくと距離は 1
8.
考察 • 命令回数は最大 100,000
と多いので、 移動した方向を全て試すことはできない – 最悪ケースで 4100000通りととても多い • 距離の最大値と最小値だけ分かればよいことに着目 – 最終的な位置が原点から遠くなる、あるいは 原点に近くなる方向にだけ移動することを考えればよい
9.
距離の最大値(100 点) • 最終的な位置が原点から遠ざかるように移動したい •
原点から遠ざかる方向とは? – 移動した向きが分からない命令は動かないことにしたとき のドローンの最終的な位置を (x, y) とする – x ≧ 0 ならば ? を R にすることで遠ざかることが、 x < 0 ならば ? を L にすることで遠ざかることができる – ?を同じ向きにのみ移動するように置換するのが最適
10.
距離の最小値(101 点) • 最終的な位置が原点に近づくように移動したい •
原点に近づく方向とは? – 移動した向きが分からない命令は動かないことにしたとき のドローンの最終的な位置を (x, y) とする – x > 0 ならば ? を L にすることで近づくことが、 x < 0 ならば ? を R にすることで近づくことができる – y > 0 ならば ? を D にすることで近づくことが、 y < 0 ならば ? を U にすることで近づくことができる – (x, y) = (0, 0) のときは原点から遠ざかるしかできない!
11.
コーナーケース例: ? 原点から移動して原点に近づくことはできない!
12.
解法 • 移動した向きが分からない命令は動かないことに したときのドローンの最終的な位置を (x,
y) とする • その後、移動した向きが分からなかった命令を 以下のように貪欲にシミュレーションする – 最大値を求める場合は、原点から遠ざかる方向に 移動する命令と考えてシミュレーション – 最小値を求める場合は、原点に近づく方向に 移動する命令と考えてシミュレーション • 原点にいる場合は遠ざかるしかできないことに注意 • 計算量は O(|S|)
13.
別解 • 移動した向きが分からない命令は動かないことに したときのドローンの最終的な位置を (x,
y) とする • 移動した向きが分からなかった命令の数を k とする • 距離の最大値は |x| + |y| + k、 距離の最小値は max(|S| % 2, |x| + |y| – k) で表せる • こちらも計算量はO(|S|)
14.
C: オセロ
15.
問題概要 • N 個のオセロの駒を黒の面が上向きになるように 一列に並べる •
その後、ある区間にある駒を全て裏返すという操作を Q 回行う • 最終的な盤面を求めよ
16.
部分点(60点) • N, Q
≦2,000 と小さい • 愚直にひっくり返すのをシミュレーションしよう! • 一回の操作につき最大で N 個の駒を裏返す • 計算量はO(NQ)
17.
満点(100点) 考察 • 駒の数も操作回数も多いので愚直にシミュレーション しては間に合わない •
まとめてシミュレーションのようなことは可能か? • ここで – 偶数回裏返された駒は黒の面が上を向く – 奇数回裏返された駒は白の面が上を向く ことに着目しよう • 各駒について裏返された回数だけ分かればよい
18.
満点(100点) 考察 • ある範囲に裏返した回数を
1 加算する という操作ができれば解けることがわかった • これを実現する方法はいくつか存在する – セグメント木 – BIT – etc. • ここではいもす法と呼ばれるテクニックを紹介する
19.
いもす法 • いもす法は加算、構築、取得の 3
つの処理からなる – 加算: 区間[l, r] に v だけ加算する – 構築: ある位置の値が求められるようにする – 取得: ある位置の値を求める • 加算 O(1),構築 O(N),取得 O(1) を実現する – ただし、構築後にさらに加算する、構築せずに取得する などの操作は許されない
20.
具体的な処理 • 基本的なアイデアは以下の 2
つ – 差分を覚えておく – 累積和により構築する • 加算処理では – l 番目の値に v 加算する – r + 1 番目の値に –v 加算する • 構築処理では – i (1 ≦ i ≦ N – 1)番目の値を i + 1 番目の値に加算する • すると各位置の値がそれぞれ求まる
21.
1 2 3
4 5 6 7 0 0 0 0 0 0 0 1 2 3 4 5 6 7 0 2 0 0 -2 0 0 1 2 3 4 5 6 7 1 3 3 6 1 1 0 1 2 3 4 5 6 7 0 2 0 3 -5 0 0 1 2 3 4 5 6 7 1 2 0 3 -5 0 -1 1 2 3 4 5 6 7 0 0 0 0 0 0 0 1 2 3 4 5 6 7 0 2 2 2 0 0 0 1 2 3 4 5 6 7 1 3 3 6 1 0 0 1 2 3 4 5 6 7 0 2 2 5 0 0 0 1 2 3 4 5 6 7 1 3 3 6 1 1 0 愚直シミュレーション いもす法 • 初期状態 • [2, 4] に 2 を加算 • [4, 4] に 3 を加算 • [1, 6] に 1 を加算 • いもす法の方は 累積和を取る • 最終的な結果は同じ!! 1 2 3 4 5 6 7 1 3 3 6 1 0 0 1 2 3 4 5 6 7 1 3 3 6 1 0 0
22.
解法 • 各操作を「区間 [l,
r] に 1 加算する」処理とみなす • いもす法など適当な方法によりこれを処理する • それぞれの駒について、偶数回裏返されたならば 0 、 奇数回裏返されたならば 1 を出力する • 計算量は O(N + Q)
23.
D: トレジャーハント
24.
問題概要 • N 頂点、M
本の重みつき有向辺からなる有向グラフが 与えられる • 頂点 i に 1 分間滞在すると所持金が Ai 円増える • 時刻 0 に頂点 1 から出発し、 T 分後に頂点 1 に戻る • 所持金を最大化せよ
25.
考察 • 滞在する必要がある頂点は 1
つと考えてよい – 複数の頂点に滞在することにより、所持金の最大値がより 大きくなるということはありえない • この問題は、「ある頂点 i に出来るかぎり早く到着し、 出来るかぎり滞在してから、頂点 1 に出来るかぎり 早く帰る」という問題だと分かった
26.
考察 • 滞在する必要がある頂点は 1
つと考えてよい – 複数の頂点に滞在することにより、所持金の最大値がより 大きくなるということはありえない • この問題は、「ある頂点 i に出来るかぎり早く到着し、 出来るかぎり滞在してから、頂点 1 に出来るかぎり 早く帰る」という問題だと分かった • これは最短経路問題と呼ばれる有名問題
27.
部分点(50点) • 以下の 2
種類の最短距離を全て求めよう! 1. 頂点 1 から、頂点 i への最短距離 2. 頂点 i から、頂点 1 への最短距離 • ワーシャルフロイド法を使うと O(N3) • ダイクストラ法を使うと O(NMlogN)
28.
満点(100点) 考察 • 部分点と同様、以下の
2 種類の最短距離を求めたい 1. 頂点 1 から、頂点 i への最短距離 2. 頂点 i から、頂点 1 への最短距離 • 種類 1 はダイクストラ法により高速に求められる • 種類 2 で全ての頂点から調べては間に合わない
29.
満点(100点) 考察 • 部分点と同様、以下の
2 種類の最短距離を求めたい 1. 頂点 1 から、頂点 i への最短距離 2. 頂点 i から、頂点 1 への最短距離 • 種類 1 はダイクストラ法により高速に求められる • 種類 2 で全ての頂点から調べては間に合わない • 頂点 1 から辺を逆向きに辿ることを考える
30.
1 7 3 8 4 5 6 9 2 頂点6に滞在するのが最適解のとき ➡は最適解の経路を示す
31.
1 7 3 8 4 5 6 9 2 行く方向
32.
1 7 3 8 4 5 6 9 2 帰る方向
33.
1 7 3 8 4 5 6 9 2 辺の向きをひっくり返す
34.
二つの単一始点最短経路問題! 1 7 3 8 4 5 6 9 2 1 7 3 8 4 5 6 9 2
35.
考察 • 結局、頂点 i
から頂点 1 への最短距離というのは • 頂点 1 から辺を逆向きに辿ったときの頂点 i への最短距離 と言い換えられる • 最短距離を求めるのは行きと帰りの 2 回だけで十分
36.
解法 • 各頂点について、頂点 1
からの最短距離を辺の向きが そのままの場合と、辺の向きを逆転した場合について 求める • ここから各頂点に滞在可能な最大の時間を求めて、 所持金の最大値を全探索する • 計算量はO((N + M)logN)
37.
注意 • 答えは 32
ビット整数に収まらない場合があります – T = 109,A1 = 105 など
Download