2022/6/11に開催された、エイシングプログラミングコンテスト2022(AtCoder Beginner Contest 255)に参加しました。
先週のABCコンテストは、久々の茶パフォを出してしまい、レートは大幅に低下。今回はその負け分を取り戻そうという気持ちで臨むこととしました。
Rated参加します。先週の負け分を取り戻すべく頑張ります✊
— devgenjin77 (@devgenjin77) 2022年6月11日
エイシングプログラミングコンテスト2022(AtCoder Beginner Contest 255) - AtCoder https://t.co/AlkxKUTRzu
今回の結果
で、今回は4完というなんとも微妙な結果となりました。
今回も負けを覚悟してましたが、パフォーマンスはギリギリレート以上に出てくれたようで、なんとかプラス1という結果。
とりあえず連敗は避けることができましたー。
ギリギリレートが上がりました😅
— devgenjin77 (@devgenjin77) 2022年6月11日
devgenjin77さんのエイシングプログラミングコンテスト2022(AtCoder Beginner Contest 255)での成績:2174位
パフォーマンス:1050相当
レーティング:1041→1042 (+1) :)#AtCoder #エイシングプログラミングコンテスト2022(ABC255) https://t.co/a0OeBxyLjl
振り返り
今回は、前半から実装が重い問題が続いたという印象です。
A問題
A - You should output ARC, though this is ABC.
の行列からを出力せよ、という問題。
やるべきことは簡単だが、Javaだと入力を書くところから結構めんどくさいw
とはいえ、ここは普通に実装して、提出。問題なくACが取れました。
2分22秒で1完。
提出コード
https://atcoder.jp/contests/abc255/submissions/32375017
B問題
B問題にしては難易度が高めの問題が出て来たかという印象。
とりあえず全探索が間に合いそうな制約なので、全探索で実装することに。
明かりを持っていない人それぞれについて、一番近いところにいる明かりを持っている人の距離を求め、あとはその距離の最大値を答えとして出力すれば良い。
あとは、実装して問題なくACが取れました。
19分5秒で2完。少し時間がかかり過ぎというところ。
提出コード
https://atcoder.jp/contests/abc255/submissions/32383922
C問題
これは考察が結構ややこしそうな問題。なんとか頑張って場合分けを考えていく。
とりあえず、との差分を取る。差分がの場合は、答えは。
公差がの場合は、差分の絶対値がそのまま答えとなる。
に、公差を足していくことで、との差が開いていくような条件の場合は、最初にとった差分の絶対値がそのまま答えとなる。
上記以外の場合が結構ややこしいのだが、「良い数」のうち、と差分が最も小さいものの候補としては、
初項に対して、差分を公差で割った回数分を足した数。
上記に対して、もう一回を足した数。
初項に対して、公差を回足した数
以上3候補が挙げられる。
あとは、公差を足す回数が項数以上にならないように考慮して実装すれば良いという感じだったが、実際は実装で色々とバグらせてしまい、ACを取るまでに合計3回もWAを喰らうこととなりました。
今回も、凡ミスをしてしまうことになり、反省しきりです。
44分43秒3ペナで3完。だいぶ立ち遅れてしまったという感じ。。
提出コード
https://atcoder.jp/contests/abc255/submissions/32394948
D問題
とりあえず数列をソートして累積和を取っておく。
の値が、のどの数より小さい場合は、の全ての合計からを引いた値が答えとなる。
の値が、のどの数より大きい場合は、からの全ての合計から引いた値が答えとなる。
上記以外の場合は、ソート済みの数列を二分探索し、前から何個目までの要素がより小さいかを求める。
より小さい要素数を個とした場合、答えは、から、ソート済み数列の個目までの累積和を引いた値と、ソート済み数列の個目以降の累積和からを引いた数を足した値となる。
なんとか、ここまでの考察を進めることができて、実装。なんとかACを取り切ることができましたとさ。
71分32秒3ペナで4完。これでは今回の勝ち負けは微妙なところ。
提出コード
https://atcoder.jp/contests/abc255/submissions/32404830
E問題
とりあえず、一読して解法が思いつかない問題だが、最終まで喰らいついてみることに。
で、とりあえずの先頭の値を決めれば、あとの要素は確定するので、先頭要素をのどれかの要素に固定してから導出したに何個の値が含まれているかを調べれば良いのでは?という感じで実装。
が、、結局この考察はサンプルすら通らずでダメ。。
あとは色々考察をしてみるも、解法には至らずでそのまま時間切れとなりました。
F問題
問題すら見れておりません。
G問題
問題すら見れておりません。
Ex問題
問題すら見れておりません。
これまでの実績
とりあえず連敗は避けることができましたとさ。
総括
今回はE以降が水Diff以上で個人的には難問だったので、4完はある程度しかたないところ。C問題で凡ミスが多かったのが反省材料です。
とりあえず、水Diffあたりの問題を本番で解けるようにするのが直近の課題ですな。過去問などを解説なしで考察するなどして、考察力を向上していければというところです。
ということで、また次回も頑張ります。