AtCoder Beginner Contest 144
A - 9x9 (100点)
atcoder.jp
と
が両方とも
以上
以下なら
、そうでなければ
。
拙解 (C++14): Submission #8146375 - AtCoder Beginner Contest 144
B - 81 (200点)
atcoder.jp
九九表のマスは全部で個しかないので全部見ても計算機上なので間に合います。
(手計算でも小学校時代に暗記してるから同じようなもん…?)
拙解 (C++14): Submission #8147644 - AtCoder Beginner Contest 144
C - Walk on Multiplication Table (300点)
atcoder.jp
Nが書かれているマスはを
の約数とすると
なので、
を全探索すればいいです。
すべてのは試し割りで
で求められて、移動回数は
からのマンハッタン距離
なので、制約が
と大きいですが
で間に合います。
拙解 (C++14): Submission #8151457 - AtCoder Beginner Contest 144
D - Water Bottle (400点)
atcoder.jp
数学Aです
底面が見える場合とそうでない場合に分けて考えるとatan関数などで角度が求められてです。
拙解 (C++14): Submission #8146375 - AtCoder Beginner Contest 144
E - Gluttony (500点)
atcoder.jp
答えを決め打って二分探索をすればとなり間に合います。
まず、を昇順に、
を降順にソートして割り当てることで成績を最小化することができます。(そうでない場合に入れ替えて成績を小さくできることから)
この成績を達成するために必要な修行回数は各要素を見ていって昇順を壊さないように目標のとの差を足していけば
で求められ、また答えは0以上
以下なので、この範囲を二分探索することで計算量
で修行回数
以下で達成できる最小のタイムが求められます。
拙解 (C++14): Submission #8160009 - AtCoder Beginner Contest 144
F - Fork in the Road (600点)
(まだ手を付けていません)