ABC 402 の D 問題Line Crossingの感想戦。平行な直線は傾きが等しくなるが、傾きを計算するのではなく多角形を結ぶ円と接する場所を考えて分類する。この時平行となる接線は2ヶ所存在するので、余りを使うことで1つに集約した。
ABC 402のC問題Dislike Foodsの感想戦。食べられるようになる順番を逆にたどり、食べられない料理の集合を作ることで解決。さらに料理に使われる食材を見て食べられるようになる日に変換することで、よりスマートに解決する方法があることを知った。
AtCoder ABC 401のC問題を時間内には回答できなかったが、簡単そうなのでチャレンジしてみました。方法は簡単だけど、計算時間制限をクリアできず、そこはカンニング。
AtCoderのABC 400のC問題にコンテスト終了後チャレンジしてみた。数学は苦手だけど、aを偶数と奇数の場合分けして考えたら予想外の簡単な計算で答えを求めることが出来た。
D 問題には歯が立たないと思っていましたが、コンテスト後に時間をかけることで ABC 400 の D 問題を塗りつぶしアルゴリズムを使って回答することが出来ました。
AtCoder beginner contest 400に参加して、AとBの問題を正解できました。しかし、見直してみるとB問題 Sum of Geometric Series を正解できたとはいえひどいコードだったので修正した。
AtCoder Beginner Contest 399の C 問題 Make it Forest を毎日 1 時間以上かけて、やっと正解できました。
提供されるテストデータをコードの試し実行の度にコピペするのは面倒くさい。そこで、テストデータをPythonのコメントとしてコードに埋め込み、それを自動的に抽出とリダイレクトしてテストを行うラッパーを作成した。
競技プログラミングのAtCoderを始めることにした。とりあえずの目標はABCのABを完答して茶色を目指す。作成したコードはGitHub上に公開する。