0.はじめに
先週は用事があり超久しぶりに参戦できず、1週ぶりのABC。
A~Cは順調でしたが、Dが解けず、E・Fを見ても太刀打ちできず
3問ACのみとなりました。
すこしさぼったので勘が鈍ったのか実力なのかわかりませんが
盛り返していきたいと思います。
それでも、レートは-19と微減で924となりました。
1.A - Penalty Kick
ペナルティキックの精度がある意味すさまじい高橋君。
まぁ、文字列を作ると言うところが珍しいかなと思いつつ
空の答え文字列ansを準備して、iを1~Nまで回し
iが3の倍数ならx違うならoをansに足していき
最後にansを出力してACとなりました。
https://atcoder.jp/contests/abc348/submissions/52062078
2.B - Farthest Point
D問題辺りで出てきたら、TLE回避策が大変そうだなーという問題。
Bなので、制約も緩いため、総当たりで何とかなりました。
競技プログラミングにありがちなユークリッド距離を求める際には
√までは計算しないという鉄則を守りつつ、各点毎に全点の組み合わせ中
距離が最大かつ、点の番号が一番小さい番号を問題通りに求めて
ACとなりました。
https://atcoder.jp/contests/abc348/submissions/52074476
3.C - Colorful Beans
問題文はややこしいですが、辞書を使えばそこまで難しくない問題でした。
最後の出力がキーも出力だったらややこしいかな・・・とも思いましたが
まぁ、それほどでもなく、Bの方が難しいくらいでした。
【実装】
1.Nをインプット
2.空辞書Dを定義
3.以下N回繰り返し
-1.A,Cをインプット
-2.Cが辞書にある場合
D[C]にD[C]とAのうち小さい方をセット
-3.Cが辞書にない場合
D[C]にAをセット
4.辞書Dの値の中から一番大きい値を出力
https://atcoder.jp/contests/abc348/submissions/52079628
4.D - Medicines on Grid
1時間くらい試行錯誤しましたがダメもとで提出した結果が
AC25、WA3、TLE13、RE12とやっぱり駄目でした。
単純にスタートからの探索ではなく、薬毎の探索を最後に組み合わせる方法が
解説にあったので、そちらを試してみようかと思います・・・。時間が出来たら・・・。
以上