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
EN
AI
Uploaded by
AtCoder Inc.
4,396 views
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
Education
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Downloaded 20 times
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PDF
AtCoder Regular Contest 045 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 029 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 019 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 039 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 032 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 031 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 035 解説
by
AtCoder Inc.
AtCoder Regular Contest 045 解説
by
AtCoder Inc.
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
AtCoder Beginner Contest 029 解説
by
AtCoder Inc.
AtCoder Beginner Contest 019 解説
by
AtCoder Inc.
AtCoder Regular Contest 039 解説
by
AtCoder Inc.
AtCoder Regular Contest 032 解説
by
AtCoder Inc.
AtCoder Regular Contest 031 解説
by
AtCoder Inc.
AtCoder Beginner Contest 035 解説
by
AtCoder Inc.
What's hot
PDF
AtCoder Beginner Contest 022 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 008 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 030 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 030 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 021 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 025 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 024 解説
by
AtCoder Inc.
PPTX
ABC001 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 018 解説
by
AtCoder Inc.
PDF
abc027
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 010 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 020 解説
by
AtCoder Inc.
PPTX
AtCoder Beginner Contest 002 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 035 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 011 解説
by
AtCoder Inc.
PPTX
AtCoder Regular Contest 002
by
AtCoder Inc.
PPTX
CODE FESTIVAL 2014 本選 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 033 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 015 解説
by
AtCoder Inc.
PDF
arc047
by
AtCoder Inc.
AtCoder Beginner Contest 022 解説
by
AtCoder Inc.
AtCoder Beginner Contest 008 解説
by
AtCoder Inc.
AtCoder Beginner Contest 030 解説
by
AtCoder Inc.
AtCoder Regular Contest 030 解説
by
AtCoder Inc.
AtCoder Beginner Contest 021 解説
by
AtCoder Inc.
AtCoder Beginner Contest 025 解説
by
AtCoder Inc.
AtCoder Beginner Contest 024 解説
by
AtCoder Inc.
ABC001 解説
by
AtCoder Inc.
AtCoder Beginner Contest 018 解説
by
AtCoder Inc.
abc027
by
AtCoder Inc.
AtCoder Beginner Contest 010 解説
by
AtCoder Inc.
AtCoder Beginner Contest 020 解説
by
AtCoder Inc.
AtCoder Beginner Contest 002 解説
by
AtCoder Inc.
AtCoder Regular Contest 035 解説
by
AtCoder Inc.
AtCoder Beginner Contest 011 解説
by
AtCoder Inc.
AtCoder Regular Contest 002
by
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
by
AtCoder Inc.
AtCoder Beginner Contest 033 解説
by
AtCoder Inc.
AtCoder Beginner Contest 015 解説
by
AtCoder Inc.
arc047
by
AtCoder Inc.
Viewers also liked
PDF
AtCoder Regular Contest 020 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 022 解説
by
AtCoder Inc.
PPSX
ω Automaton
by
Abdul Haseeb
PDF
AtCoder Regular Contest 025 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 024 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 023 解説
by
AtCoder Inc.
PDF
正規言語と代数と論理の対応:An Introduction to Eilenberg’s Variety Theorem
by
Ryoma Sin'ya
PPTX
AtCoder Regular Contest 016 解説
by
AtCoder Inc.
PDF
機械学習とその理論 (情報オリンピック2015春合宿講義資料)
by
irrrrr
PPTX
AtCoder Regular Contest 001
by
AtCoder Inc.
AtCoder Regular Contest 020 解説
by
AtCoder Inc.
AtCoder Regular Contest 022 解説
by
AtCoder Inc.
ω Automaton
by
Abdul Haseeb
AtCoder Regular Contest 025 解説
by
AtCoder Inc.
AtCoder Regular Contest 024 解説
by
AtCoder Inc.
AtCoder Regular Contest 023 解説
by
AtCoder Inc.
正規言語と代数と論理の対応:An Introduction to Eilenberg’s Variety Theorem
by
Ryoma Sin'ya
AtCoder Regular Contest 016 解説
by
AtCoder Inc.
機械学習とその理論 (情報オリンピック2015春合宿講義資料)
by
irrrrr
AtCoder Regular Contest 001
by
AtCoder Inc.
Similar to AtCoder Regular Contest 021 解説
PDF
AtCoder Regular Contest 017
by
AtCoder Inc.
PDF
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
PPTX
At coder regular contest 013 解説
by
光喜 濱屋
PDF
AtCoder Regular Contest 027 解説
by
AtCoder Inc.
PDF
Indeedなう B日程 解説
by
AtCoder Inc.
PDF
最小カットを使って「燃やす埋める問題」を解く
by
shindannin
PDF
130323 slide all
by
ikea0064
PDF
WUPC2nd I問題
by
Dai Hamada
PDF
AtCoder Regular Contest 046
by
AtCoder Inc.
PDF
指数時間アルゴリズム入門
by
Yoichi Iwata
PDF
AtCoder Regular Contest 043 解説
by
AtCoder Inc.
PDF
DDPC 2016 予選 解説
by
AtCoder Inc.
PDF
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
PPTX
joi2012-sp-day2-broadcasting
by
Masaki Hara
PPTX
CODE FESTIVAL 予選B 解説
by
AtCoder Inc.
PDF
Donutsプロコンチャレンジ 2015 解説
by
kuno4n
PDF
HUPC 2019 Day1 F: グリッドの番号
by
HCPC: 北海道大学競技プログラミングサークル
PDF
ACPC 2017 Day3 F: 掛け算は楽しい
by
HCPC: 北海道大学競技プログラミングサークル
PPTX
AtCoder Beginner Contest 014 解説
by
AtCoder Inc.
PPTX
AtCoder Regular Contest 029 解説
by
AtCoder Inc.
AtCoder Regular Contest 017
by
AtCoder Inc.
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
At coder regular contest 013 解説
by
光喜 濱屋
AtCoder Regular Contest 027 解説
by
AtCoder Inc.
Indeedなう B日程 解説
by
AtCoder Inc.
最小カットを使って「燃やす埋める問題」を解く
by
shindannin
130323 slide all
by
ikea0064
WUPC2nd I問題
by
Dai Hamada
AtCoder Regular Contest 046
by
AtCoder Inc.
指数時間アルゴリズム入門
by
Yoichi Iwata
AtCoder Regular Contest 043 解説
by
AtCoder Inc.
DDPC 2016 予選 解説
by
AtCoder Inc.
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
joi2012-sp-day2-broadcasting
by
Masaki Hara
CODE FESTIVAL 予選B 解説
by
AtCoder Inc.
Donutsプロコンチャレンジ 2015 解説
by
kuno4n
HUPC 2019 Day1 F: グリッドの番号
by
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
by
HCPC: 北海道大学競技プログラミングサークル
AtCoder Beginner Contest 014 解説
by
AtCoder Inc.
AtCoder Regular Contest 029 解説
by
AtCoder Inc.
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.
PPTX
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 048
by
AtCoder Inc.
PDF
MUJINプログラミングチャレンジ2016 解説
by
AtCoder Inc.
PDF
abc032
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 沖縄ツアー 解説
by
AtCoder Inc.
PDF
abc031
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 解説
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 予選B 解説
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.
PDF
AtCoder Regular Contest 042 解説
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 Beginner Contest 034 解説
by
AtCoder Inc.
AtCoder Regular Contest 048
by
AtCoder Inc.
MUJINプログラミングチャレンジ2016 解説
by
AtCoder Inc.
abc032
by
AtCoder Inc.
CODE FESTIVAL 2015 沖縄ツアー 解説
by
AtCoder Inc.
abc031
by
AtCoder Inc.
CODE FESTIVAL 2015 解説
by
AtCoder Inc.
CODE FESTIVAL 2015 予選B 解説
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 Regular Contest 042 解説
by
AtCoder Inc.
AtCoder Regular Contest 021 解説
1.
AtCoder Regular Contest
021 解説 AtCoder株式会社 2014/4/19 1
2.
A問題 DEAD END
3.
A - 問題概要 問題 タイルを滑らせることで同じ数をぶつけて 大きい数にしていくゲームの盤面が与えられる。 ゲームオーバーの状態かどうかを判定せよ。
4.
A - 重要なポイント 与えられる盤面では空いているマスはない! ↓ 同じ数をぶつけるような操作が必要 しかも、隣り合う数をぶつけるしかない
5.
A - 解き方 整理すると…… 上下左右に隣り合う同じ数が
ある → CONTINUE ない → GAMEOVER 実装 ・2 重ループを回す(添字に注意) ・if 文を書きまくって全部調べる(列挙漏れに注意) (きちんとループで書けるようになっておいた方がいい)
6.
ARC #021 B
問題解説 解説:城下 慎也 (@phidnight)
7.
問題概要 • 𝑁 個の非負整数
𝐵1, 𝐵2, … , 𝐵 𝑁 が与えられる。 • 𝐵𝑖 = 𝐴𝑖^𝐴𝑖+1(ただし 𝐴 𝑁+1 = 𝐴1) である。 (以降、^ を排他的論理和(xor) の記号として表す。) • 𝐵1, 𝐵2, … , 𝐵 𝑁 として考えられるものが存在するな ら辞書順最小を求めよ。ないならないことを指摘 せよ。 • 2 ≦ 𝑁 ≦ 100,000
8.
排他的論理和の性質(例) • 𝐴, 𝐵,
𝐶 を非負整数とすると • 結合則(𝐴^𝐵)^𝐶= 𝐴^(𝐵^𝐶) が成立する。 • 交換則𝐴^𝐵= 𝐵^𝐴 が成立する。 • 𝐴^0= 𝐴 (零元) • 𝐴^𝐴= 0 (それ自身と xor すると零元になる。) • これらの性質を利用してこの問題を考える。
9.
考察 • 𝐴1を固定して考えてみる。 • 𝐵1
=𝐴1^ 𝐴2より𝐴2=𝐴1^ 𝐵1 (∵ 𝐴2=0^𝐴2=(𝐴1^𝐴1)^𝐴2=𝐴1^(𝐴1^𝐴2)=𝐴1^ 𝐵1) • 同様に、 𝐵2 =𝐴2^ 𝐴3より𝐴3=(𝐴1^𝐵1)^𝐵2 (∵ 𝐴3=𝐴2^𝐵2=前述の𝐴2を代入) • 一般に 𝐴𝑖=𝐴1^𝐵1^𝐵2^…^𝐵𝑖−1 (𝑖 ≧ 2)が成立 することを示す。
10.
考察 • 𝐴𝑖=𝐴1^𝐵1^𝐵2^…^𝐵𝑖−1 (𝑖
≧ 2)が成立する。 (∵𝐴𝑖=(𝐴1^𝐴1)^(𝐴2^𝐴2)^…^(𝐴𝑖−1^𝐴𝑖−1)^𝐴𝑖 =𝐴1^(𝐴1^𝐴2)^ (𝐴2^𝐴3) ^…^(𝐴𝑖−1^𝐴𝑖) =𝐴1^𝐵1^𝐵2^…^𝐵𝑖−1) • 以上のことより、𝐴1が定まれば、𝐴2から𝐴 𝑁ま でのすべての値が𝐵1から𝐵 𝑁−1までの値を用 いて、一意に定まることがわかる。
11.
解の存在判定について • 使用されなかった𝐵 𝑁については、先ほどの計 算で出てきた値と𝐵
𝑁= 𝐴 𝑁^ 𝐴1が矛盾する場 合がある。 • 𝐴 𝑁^ 𝐴1= 𝐵1^ 𝐵2^…^ 𝐵 𝑁−1となるので𝐵 𝑁は𝐴1 に依存せずこの値に一致するはずである。 • 矛盾したならば解が存在しない。 • 矛盾しないなら、 𝐴1を任意に指定した後、解 が一意に定まる。
12.
辞書順最小 • 解が存在した場合に、辞書順最小なものを求 める必要がある。 • 先頭の値
(𝐴1) ができるだけ小さいほうが良 い。 • 今回の場合では、𝐴1=0のケースがただ 1 通 りだけ存在するので、その1 通りが辞書順最 小の値となる。(𝐴2以降を比較する必要はな い。) • これを計算して答えが得られる。
13.
まとめ • 𝐵 𝑁=𝐵1^
𝐵2^…^ 𝐵 𝑁−1が成立しないなら解なし、 成立するなら𝐴1= 0と置いて順に解を計算す る。 • 排他的論理和の性質を利用した問題は様々 なものがあるので、排他的論理和の問題に は慣れておこう!
14.
ARC #021 C
問題解説 解説:城下 慎也 (@phidnight)
15.
問題概要 • 高橋君は建物を 𝐾
回増築したい。 • 高橋君は 𝑁 軒の建物を所有している。 • 増築には、増築する建物について、現在の価格 だけ費用がかかり、増築で一定値値上がりする。 • 合計費用として考えられるものの最小値はいくら か。 • 1 ≦ 𝐾 ≦ 100,000,000 • 1 ≦ 𝑁 ≦ 100,000
16.
部分点解法 その1 • 毎回どの建物を増築するかを𝑁
通りから選ぶ解 法だと O(𝑁 𝐾 ) 通りになってしまう。 • 考えてみると、異なる建物同士の増築の順番を 考慮しなくてもよいことが分かる。 • つまり、「建物1 を増築しまくる」→ 「建物2 を増築 しまくる」→… という順番を付けてもOK。 • すると、dp[i][j]=(i 番目の建物までの増築が完了 したときに、今まで j 回増築している場合の最小 費用) とする DP を組めば O(𝐾2 𝑁) で計算するこ とができる。これで 30 点が得られる。
17.
部分点解法 その2,3 • 実は、毎回「現在の費用が最小なものを増築 し続ける」という貪欲法で正解を得ることがで きる。 •
以降の数枚でそのことを示す。 • この貪欲法を毎回すべて見る方針で実装す れば O(𝐾𝑁) で解ける。計40点が得られる。 • priority_queue を使用すればO(𝐾 log 𝑁) とな り、通算55点が得られる。
18.
貪欲法が適用可能なことの証明 • 建物の増築回数と価格を照らしあわせた表 は例えば次のようになる。 ID A
D 0 回増築 1 回増築 2 回増築 3 回増築 1 50 40 50 90 130 170 2 40 80 40 120 200 240 3 70 50 70 120 170 220 4 60 60 60 120 180 240
19.
貪欲法が適用可能なことの証明 • 建物の増築回数と価格を照らしあわせた表 は例えば次のようになる。 • ここから
𝐾 個良いものを (途中が飛んでも良 い) 選ぶアルゴリズムは貪欲法で実装できる。 ID A D 0 回増築 1 回増築 2 回増築 3 回増築 1 50 40 50 90 130 170 2 40 80 40 120 200 240 3 70 50 70 120 170 220 4 60 60 60 120 180 240
20.
貪欲法が適用可能なことの証明 • 先ほどの貪欲アルゴリズムは左詰め。という のも、同じ ID
内で、X 回増築の部分を採用し ないで X+1 回増築の部分を採用しているなら、 代わりに X 回増築の部分を採用すればより 費用が下がる。 • 左詰めに採用されているのであれば、これは 今回の問題で実行可能。 • この値より下回る解は存在しないので、これ が最適解となる。
21.
満点解法に向けて • この方針では 1
≦ 𝐾 ≦ 100,000,000 という制 約に対して充分高速でない。 • 今までの手順をどうにかして高速化したい。 • 更に考察してみよう!
22.
アプローチを変えてみる • 貪欲法で最後に選んだ増築の費用を𝑉として みる。 • 費用が𝑈の増築に対して、 •
𝑉 > 𝑈なら、その増築は必ず行われる。 • 𝑉 < 𝑈なら、その増築は決して行われない。 • 𝑉 = 𝑈なら、合計が𝐾回となる分だけ増築が 行われる。
23.
満点解法 • 先ほどの𝑉を考えてみると、適当に𝑉′を定めたと き、 𝑉′未満、
𝑉′より大きい、 𝑉′に等しい費用の増 築がそれぞれ何個あるかを計算すれば、𝑉と𝑉′ の大小関係が分かる。 • よって、 𝑉を二分探索することで計算することが できる。 • 𝑉が分かれば、 𝑉未満の増築(𝑀個とする)をすべ て採用し、 𝑉と等しい増築を𝐾 − 𝑀個採用すれ ば最適解を計算できる。 • O(𝑁 log 𝐿) (𝐿は𝑉の上限) で計算できる。 • 100点が得られる。
24.
D問題 だいたい最小全域木
25.
D - 問題概要 問題 200
次元空間に 5 000 個の点がある。 2 点を結ぶコストを (1 - コサイン類似度) とするとき できるだけコストの小さい全域木を求めよ。 最適なものの 1.01 倍のコストに収まれば OK。
26.
D - 方針 普通にやると…… 問題自体は最小全域木だが、 全点間のコストを計算するのは時間がかかりすぎる。 最小じゃなくてもいい! 「最適なものの
1.01 倍のコストに収まれば OK。」 だった! → 必要そうな 2 点間だけ計算するようにしたい
27.
D - 2次元の場合 この問題が
2 次元空間の場合は…… ←こんな感じで グループ分けして 同じか、近いグループの 点たちだけ見る
28.
D - 200
次元でも同じことを ・ランダムなベクトルを K 個用意する ・各点とランダムベクトルの内積が正か負かで K ビットのハッシュのようなものが計算できる ・このハッシュで近いものだけを考えることにする ハッシュ同士はハミング距離(異なるビットの個数) で距離を測れば爆速!!!!!
29.
D - K
の選び方 今回の場合は点がランダムに分布しているので ・点の i 番目の座標の値が正か負か で 200 ビットのハッシュを作ると、 均等にグループ分けできて良いです。
Download