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点)
(まだ手を付けていません)