0.はじめに
A~Cは順調に解けたのですが、Dでつまづきました。
最近は順調にレートを上げていましたが、ここでブレーキ。
それでも、-16で947と、900台はキープできているので
気合を入れなおしていきたいと思いました。
1.A - Arithmetic Progression
Aにしては難しめの問題。
回答用配列ansを用意し、Aをセット
以降最後の値にDを加算した値を加えていくループを回し
最後の値がBになったらansを出力して終了。
https://atcoder.jp/contests/abc340/submissions/50141495
2.B - Append
Bでは珍しいクエリー問題。
まぁ、言われた通りに実装。
特にこれといった工夫ポイントもない感じでした。
https://atcoder.jp/contests/abc340/submissions/50147049
3.C - Divide and Divide
メモ化再帰の例題のような問題。
lru_cacheは使わず自前で辞書を使って実装しました。
今のとこ自前の辞書で不自由したことはないので
lru_cacheを使うことはしばらくない気がします。
【実装】
1.Nを入力
2.辞書Dを定義
3.回答変数ansに関数chk(N)をセット
4.ansを出力
-関数chk-引数n
1.nがDにある場合は、D[n]+nを返す
2.nが1の場合は0を返す
3.上記以外の場合
3-1.nが偶数の時(黒板にnを2で割った数を二つ書く)
-1.変数ansにchk(n//2)*2をセット
-2.D[n]にansをセット
-3.ans+nを返す
3-2.nが奇数の時(黒板にn//2とn//2+1を書く)
-1.変数ansにchk(n//2)+chk(n//2+1)をセット
-2.D[n]にansをセット
-3.ans+nを返す
https://atcoder.jp/contests/abc340/submissions/50156872
4.D - Super Takahashi Bros.
ググったダイクストラ法を参考に実装しましたが
WA7つがどうしてもクリアできず時間切れ。
解説をもとに実装したところACとなりました。
テストケースが公開されたらどこがダメだったか
調べられますが、テストケースが公開される頃には
忘れていることがままあります・・・。
https://atcoder.jp/contests/abc340/submissions/50193904
以上