A 問題
レベルアップ
概要
• 攻撃力 𝐴 と防御力 𝐷 が与えられます。
• どちらかを 1 加算した後の両方の積として考えられる最大値を求め
てください。
解法
• (𝐴 + 1)𝐷 と 𝐴(𝐷 + 1) のうち大きい方を出力します。
• 入出力関数や条件分岐を組み合わせます。
• もしも最大値や最小値を求めるライブラリ等があればコードを書きや
すくなります。
B 問題
運動管理
概要
• 𝐿 分以上 𝐻 分以下の範囲で運動する必要があります。
• 各 𝐴𝑖 に対して、𝐴𝑖 < 𝐿 なら 𝐿 − 𝐴𝑖 を、𝐿 ≦ 𝐴𝑖 ≦ 𝐻 なら 0 を、𝐴𝑖 > 𝐻
なら -1 を出力してください。
解法
• 問題 A のように入出力関数や条件分岐を組み合わせて解くことがで
きます。
• この問題ではさらにループや再帰関数を用いて計算を行う必要があ
ります。
C 問題
数列ゲーム
概要
• 高橋君と青木君が数列で遊びます。
• 最初に高橋君が要素の 1 つに丸を付けて、その後青木君が別の要
素 1 つに丸を付けます。
• 2 つの丸に囲まれた範囲(両端含む)を取り出し、左から交互に高橋
君、青木君の得点に加算します。
• 青木君が自分の得点が最大となるように丸をつける(複数あるならそ
れらのうち最も左に丸をつける)とき、高橋君が得られる最大得点を
求めてください。
• 2 ≦ 𝑁 ≦ 50
青木君の行動について
• 青木君の行動について、例とともに確認します。
• 例: 数列が[1, -3, 3, 9, 1, 6]
• 高橋君が左から 2 番目の要素 -3 を選んだ場合について考えます。
• 青木君は、左から 1 番目、3 番目、4 番目、5 番目、6 番目の要素を
選ぶことができます。
• それぞれの選び方において、残る数列は [1, -3], [-3, 3], [-3, 3, 9], [-3,
3, 9, 1], [-3, 3, 9, 1, 6] となり、青木君の得られる得点は順に -3, 3, 3,
4, 4 となります。
• 最終的に青木君は左から 5 番目の要素に丸を付けます。
解法
• 高橋君が丸を付ける場所を固定したとき、青木君の行動がわかるの
で、青木君がどこに丸を付け、結果どちらが何点得られるかは一意
に定まります。
• 高橋君の得点を求めるには、高橋君がここに丸を付けた場合に何
点得られるかをすべての要素について求めておいて、それらの最小
値を出力すれば解くことができます。
注意事項
• この問題には負の値が登場します。
• 負の値の取り扱い(使用する変数が符号付きなのか符号無しなの
かなど)に注意してください。
D 問題
語呂合わせ
概要
• 正の整数 𝑣1, … , 𝑣 𝑁と文字列 𝑤1, … , 𝑤 𝑁 が与えられます。
• 文字列 𝑠1, … , 𝑠 𝐾 をうまく定めて、数字 𝑖 を文字列 𝑠𝑖 に変換すること
によりどの整数 𝑣𝑗 も対応する文字列 𝑤𝑗 にできるようにしてください。
• 1 ≦ 𝑁 ≦ 50
• 1 ≦ |𝑠𝑖| ≦ 3
• 1 ≦ 𝑣𝑖 ≦ 109
• 1 ≦ |𝑤𝑖| ≦ 27
部分点解法
• 先に文字列 𝑠1, … , 𝑠 𝐾 を決めて、それらが条件を満たすか判定しま
す。
• データセット 1 において最大 (33+32 + 3)3 通りの組み合わせを試
すことになりますが、この大きさならば余り多くの時間をかけずに計
算することができます。
• 一方、データセット 2 になってくると最大 (263+262 + 26)9 通りを試
すことになってしまい、これでは間に合いません。
考察
• 文字列の長さが固定された場合どうなるでしょうか?
• 実は、𝑠1, … , 𝑠 𝐾 の長さが定まると、文字列 𝑠1, … , 𝑠 𝐾 が文字列 𝑤1,
… , 𝑤 𝑁 のうちどの範囲に合致するかが一意に定まります。
• 範囲が定まれば、𝑠1, … , 𝑠 𝐾 は一意に定まります (定まらなかった、
すなわち矛盾したらその長さの固定の仕方では答えが無いことが言
えます)。
満点解法
• 文字列 𝑠1, … , 𝑠 𝐾 の長さを固定することで、O( |𝑤𝑖|× 𝐾)で答えを求
めることができます。
• 𝑠1, … , 𝑠 𝐾 の文字列長は 3 以下なので、全体の計算量は
O(3 𝐾
× |𝑤𝑖|× 𝐾) に抑えることができ、これならばデータセット 2
でも高速に動作します。

More Related Content

PPTX
AtCoder Beginner Contest 034 解説
PDF
AtCoder Beginner Contest 021 解説
PDF
AtCoder Beginner Contest 018 解説
PDF
AtCoder Beginner Contest 022 解説
PDF
abc027
PDF
AtCoder Beginner Contest 008 解説
PDF
Abc009
PDF
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 022 解説
abc027
AtCoder Beginner Contest 008 解説
Abc009
AtCoder Beginner Contest 015 解説

What's hot (20)

PDF
AtCoder Regular Contest 031 解説
PDF
AtCoder Beginner Contest 005 解説
PDF
AtCoder Regular Contest 039 解説
PPTX
Arc015途中まで解説
PDF
AtCoder Regular Contest 048
PDF
AtCoder Beginner Contest 011 解説
PDF
AtCoder Beginner Contest 025 解説
PPTX
AtCoder Regular Contest 016 解説
PDF
AtCoder Beginner Contest 010 解説
PPTX
AtCoder Beginner Contest 014 解説
PDF
AtCoder Beginner Contest 019 解説
PDF
AtCoder Beginner Contest 016 解説
PDF
abc032
PPTX
AtCoder Beginner Contest 003 解説
PDF
AtCoder Beginner Contest 007 解説
PDF
AtCoder Regular Contest 027 解説
PDF
AtCoder Beginner Contest 030 解説
PDF
AtCoder Beginner Contest 017 解説
PDF
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
PDF
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 031 解説
AtCoder Beginner Contest 005 解説
AtCoder Regular Contest 039 解説
Arc015途中まで解説
AtCoder Regular Contest 048
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 025 解説
AtCoder Regular Contest 016 解説
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 016 解説
abc032
AtCoder Beginner Contest 003 解説
AtCoder Beginner Contest 007 解説
AtCoder Regular Contest 027 解説
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 017 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
AtCoder Regular Contest 022 解説
Ad

Similar to abc031 (20)

PDF
130323 slide all
PPTX
CODE FESTIVAL 2014 本選 解説
PDF
AtCoder Regular Contest 046
PDF
AtCoder Beginner Contest 026 解説
PDF
JOI予選はランチの後で
PPTX
CODE FESTIVAL 予選B 解説
PDF
AtCoder Beginner Contest 020 解説
PDF
2012年1月13日
PDF
条件分岐とcmovとmaxps
PDF
競技プログラミングの楽しみ
PDF
AtCoder Beginner Contest 028 解説
PDF
DDPC 2016 予選 解説
PDF
Square869120 contest #2
PPTX
Good Sequences
PDF
CODE THANKS FESTIVAL 2014 B日程 解説
PDF
関数プログラミング ことはじめ (再)
PDF
AtCoder Regular Contest 019 解説
PDF
Ninja of Train
130323 slide all
CODE FESTIVAL 2014 本選 解説
AtCoder Regular Contest 046
AtCoder Beginner Contest 026 解説
JOI予選はランチの後で
CODE FESTIVAL 予選B 解説
AtCoder Beginner Contest 020 解説
2012年1月13日
条件分岐とcmovとmaxps
競技プログラミングの楽しみ
AtCoder Beginner Contest 028 解説
DDPC 2016 予選 解説
Square869120 contest #2
Good Sequences
CODE THANKS FESTIVAL 2014 B日程 解説
関数プログラミング ことはじめ (再)
AtCoder Regular Contest 019 解説
Ninja of Train
Ad

More from AtCoder Inc. (19)

PPTX
TCO2017R1
PPTX
AtCoderに毎回参加したくなる仕組み
PDF
AtCoder Beginner Contest 035 解説
PDF
Chokudai Contest 001
PDF
AtCoder Regular Contest 049 解説
PDF
MUJINプログラミングチャレンジ2016 解説
PDF
AtCoder Beginner Contest 033 解説
PDF
arc047
PDF
CODE FESTIVAL 2015 沖縄ツアー 解説
PDF
CODE FESTIVAL 2015 解説
PDF
CODE FESTIVAL 2015 予選B 解説
PDF
AtCoder Regular Contest 045 解説
PDF
CODE FESTIVAL 2015 予選A 解説
PDF
AtCoder Beginner Contest 029 解説
PDF
AtCoder Regular Contest 044 解説
PDF
天下一プログラマーコンテスト2015 予選B 解説
PDF
AtCoder Regular Contest 043 解説
PDF
天下一プログラマーコンテスト2015 予選A E問題 解説
PDF
AtCoder Regular Contest 042 解説
TCO2017R1
AtCoderに毎回参加したくなる仕組み
AtCoder Beginner Contest 035 解説
Chokudai Contest 001
AtCoder Regular Contest 049 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Beginner Contest 033 解説
arc047
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Regular Contest 045 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Beginner Contest 029 解説
AtCoder Regular Contest 044 解説
天下一プログラマーコンテスト2015 予選B 解説
AtCoder Regular Contest 043 解説
天下一プログラマーコンテスト2015 予選A E問題 解説
AtCoder Regular Contest 042 解説

abc031