Submit Search
Upload
abc027
•
4 likes
•
14,937 views
A
AtCoder Inc.
Follow
AtCoder Beginner Contest 027 解説
Read less
Read more
Education
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
AtCoder Inc.
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
Abc009
Abc009
AtCoder Inc.
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
AtCoder Beginner Contest 022 解説
AtCoder Beginner Contest 022 解説
AtCoder Inc.
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
AtCoder Inc.
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
Recommended
AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
AtCoder Inc.
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
Abc009
Abc009
AtCoder Inc.
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
AtCoder Beginner Contest 022 解説
AtCoder Beginner Contest 022 解説
AtCoder Inc.
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
AtCoder Inc.
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
abc032
abc032
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Inc.
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Inc.
HAPPY NEW YEAR 2017 コンテスト 解説
HAPPY NEW YEAR 2017 コンテスト 解説
皓介 三田
Aizu-2017: B
Aizu-2017: B
HCPC: 北海道大学競技プログラミングサークル
More Related Content
What's hot
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
abc032
abc032
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Inc.
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Inc.
What's hot
(20)
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
abc032
abc032
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
Similar to abc027
HAPPY NEW YEAR 2017 コンテスト 解説
HAPPY NEW YEAR 2017 コンテスト 解説
皓介 三田
Aizu-2017: B
Aizu-2017: B
HCPC: 北海道大学競技プログラミングサークル
Arc041
Arc041
AtCoder Inc.
CODE THANKS FESTIVAL 2014 A日程 解説
CODE THANKS FESTIVAL 2014 A日程 解説
AtCoder Inc.
JOISP2013 Day3 Cake
JOISP2013 Day3 Cake
__m3n
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
AtCoder Inc.
Similar to abc027
(7)
HAPPY NEW YEAR 2017 コンテスト 解説
HAPPY NEW YEAR 2017 コンテスト 解説
Aizu-2017: B
Aizu-2017: B
Arc041
Arc041
CODE THANKS FESTIVAL 2014 A日程 解説
CODE THANKS FESTIVAL 2014 A日程 解説
JOISP2013 Day3 Cake
JOISP2013 Day3 Cake
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
More from AtCoder Inc.
TCO2017R1
TCO2017R1
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
Square869120 contest #2
Square869120 contest #2
AtCoder Inc.
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
AtCoder Inc.
Chokudai Contest 001
Chokudai Contest 001
AtCoder Inc.
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Inc.
AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
arc047
arc047
AtCoder Inc.
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
AtCoder Inc.
abc031
abc031
AtCoder Inc.
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
AtCoder Inc.
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Inc.
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Inc.
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
AtCoder Inc.
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Inc.
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
AtCoder Inc.
More from AtCoder Inc.
(20)
TCO2017R1
TCO2017R1
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
Square869120 contest #2
Square869120 contest #2
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Chokudai Contest 001
Chokudai Contest 001
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 048
AtCoder Regular Contest 048
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
DDPC 2016 予選 解説
DDPC 2016 予選 解説
arc047
arc047
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
abc031
abc031
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
Recently uploaded
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
Recently uploaded
(7)
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
abc027
1.
ABC #027 解説 解説スライド担当
: @sugim48
2.
問題 A –
長方形
3.
問題概要 • ある長方形(正方形も含む)の 3
つの辺の長さが与えられる。残り 1 つの辺の長さを求めよ。 3 ? 4 4 5 ? 5 5
4.
考察 • 向かい合う辺の長さは等しい。 3 ? 4 4 5
? 5 5
5.
解法 • 与えられた 3
つの数のうち、等しい組を見つけたら、余った数がその まま答えになる。 4 3 4 𝑎𝑛𝑠 = 5 5 5 = 𝑎𝑛𝑠
6.
解答例 (C++) int x,
y, z; cin >> x >> y >> z; int ans; if (x == y) ans = z; if (y == z) ans = x; if (z == x) ans = y; cout << ans << endl;
7.
問題 B –
島と橋
8.
問題概要 • 𝑁 個の島が横一列に並んでいる。左から
𝑖 番目の島には 𝑎𝑖 人の住 人が住んでいる。 • 隣り合う島の間に橋を架け、住人を移動させることができる。 • すべての島に同じ人数の住人が住むようにできるか? また、最小で 何本の橋を架ければよいか? • 2 ≤ 𝑁 ≤ 100 • 0 ≤ 𝑎𝑖 ≤ 100
9.
例
10.
例
11.
例
12.
解法 • まず、 𝑖=1 𝑁 𝑎𝑖
が 𝑁 で割り切れなければ、不可能である。 • 割り切れるならば、それぞれの島に 1 𝑁 𝑖=1 𝑁 𝑎𝑖 人ずつ住むことになる。
13.
解法 • 隣り合う島の間ごとに橋が必要か判定していく。 • 下図の橋は必要か?
橋の左側が 1 人、橋の右側が 4 人になって ほしいので、橋を左から右へ 1 人渡ることになる。 → 必要
14.
解法 • 下図の橋は必要か? 橋の左側が
2 人、橋の右側が 3 人になって ほしいが、はじめからそうなっている。 → 必要ではない
15.
解法 • このようにして、隣り合う島の間ごとに橋が必要か判定し、必要と判 定された橋の本数を答えればよい。
16.
問題 C –
倍々ゲーム
17.
問題概要 • A と
B が二人ゲームで勝負する。 • 自然数 𝑁 が与えられる。𝑥 = 1 に初期化する。 • A → B → A → … の順に次の操作を行う。 𝑥 を 2𝑥 または 2𝑥 + 1 に置き換える。 • 𝑥 > 𝑁 にした人が負け。 • どちらかが勝つか求めよ。 • 1 ≤ 𝑁 ≤ 1018
18.
• A の操作を赤、B
の操作を青で表すと、図のように 𝑥 が変化する。 1098 131211 1514 4 5 6 7 2 3 1
19.
• 例えば 𝑁
= 5 のとき、OK の整数と NG の整数はこのように分離され る。 1098 131211 1514 4 5 6 7 2 3 1
20.
• 境界線をまたぐ操作だけに注目すると、A の操作は左に、B
の操作 は右に偏っている。 1098 131211 1514 4 5 6 7 2 3 1
21.
• 境界線をまたぐと負けてしまうので、A はできるだけ右に、B
はできる だけ左に行きたがることが分かる。 1098 131211 1514 4 5 6 7 2 3 1
22.
• これを実際にシミュレートすると B
が負けると判定できる。 1098 131211 1514 4 5 6 7 2 3 1
23.
• 別の例として 𝑁
= 10 のとき、OK の整数と NG の整数はこのように 分離される。 1098 131211 1514 4 5 6 7 2 3 1
24.
• 境界線をまたぐ操作だけに注目すると、A の操作は右に、B
の操作 は左に偏っている。 1098 131211 1514 4 5 6 7 2 3 1
25.
• 境界線をまたぐと負けてしまうので、A はできるだけ左に、B
はできる だけ右に行きたがることが分かる。 1098 131211 1514 4 5 6 7 2 3 1
26.
• これを実際にシミュレートすると B
が負けると判定できる。 1098 131211 1514 4 5 6 7 2 3 1
27.
解法 • 𝑁 の深さの偶奇に応じて、A
と B の戦略が決まる。 • A と B の戦略を実際にシミュレートして、どちらかが勝つか判定する。 • 𝑁 の深さは次のようにして 𝑂(𝑙𝑜𝑔𝑁) 時間で計算できる。 int depth = 0; for (long long n = N; n > 0; n /= 2) depth++;
28.
問題 D –
ロボット
29.
問題概要 • 数直線の原点にロボットが置かれている。はじめ、ロボットの幸福度 は 0
である。 • このロボットが命令列 𝑆 を順に実行する。 M : 正か負の向きに距離 1 だけ移動する。 + : 今の座標を 𝑥 とすると、幸福度が +𝑥 だけ変化する。 - : 今の座標を 𝑥 とすると、幸福度が -𝑥 だけ変化する。 • 最終的にロボットは原点に戻っていなければならない。 • 最終的な幸福度の最大値を求めよ。 • 1 ≤ 𝑆 ≤ 105
30.
部分点解法 • 1 ≤
𝑆 ≤ 1,000 と小さい。 → 動的計画法 • 𝑑𝑝 何文字目 座標 ≔ (幸福度の最大値) を埋めていく。 • 𝑑𝑝 |𝑆| 0 が答え。 • 𝑂( 𝑆 2) で間に合う。
31.
満点解法 • 1 ≤
𝑆 ≤ 105 と大きいので、動的計画法では間に合わない。 → もっと速い解法を考える。 • ロボットの正の向きへの移動を > 、負の向きへの移動を < と表すこ とにする。
32.
考察 • >+<<-> という命令列を考える。 •
幸福度の変化量は + ごとに (自分より左の > の個数) - (自分より左の < の個数) - ごとに (自分より左の < の個数) - (自分より左の > の個数) • 見方を変えると > ごとに (自分より右の + の個数) - (自分より右の - の個数) < ごとに (自分より右の - の個数) - (自分より右の + の個数)
33.
考察 • (自分より右の +
の個数) と (自分より右の - の個数) が分かれば、 > または < を選んだときの幸福度の変化量を予言できる! • 例) M--M-M+M+ M - - M - M + M + > −1 +1 +2 +1 < +1 −1 −2 −1
34.
考察 • 最終的な幸福度を最大化したいので、幸福度が増える向きを貪欲に 選んでいけばいいか? → 「最終的にロボットは原点に戻っていなければならない」という条件 を守れない。 M
- - M - M + M + > −1 +1 +2 +1 < +1 −1 −2 −1
35.
考察 • 最終的にロボットが原点に戻るためには、> と
< を同じ回数だけ選ば なければならない。 • この制約下でできるだけ大きいものを選びたい。 M - - M - M + M + > −1 +1 +2 +1 < +1 −1 −2 −1
36.
考察 • この行を昇順にソートすると →
[−1, +1, +1, +2] • 前半分を < に、後ろ半分を > に割り当てる → −1, +1, +1, +2 • +1 + +2 − −1 + +1 = 3 が答え! M - - M - M + M + > −1 +1 +2 +1 < +1 −1 −2 −1
37.
解法 • 命令列 𝑆
の各 M について、 (自分より右の + の個数) - (自分より右の - の個数) を計算し、 配列 𝐴 に格納する。 • 𝐴 を昇順にソートする。 • (𝐴 の後ろ半分の総和) – (𝐴 の前半分の総和) が答え。 • 𝑂( 𝑆 log 𝑆 ) で間に合う。 • なお、バケツソートを用いると 𝑂( 𝑆 )
Download now