パナソニックグループプログラミングコンテスト2023(AtCoder Beginner Contest 301)参加記

2023/5/13に開催された、パナソニックグループプログラミングコンテスト2023(AtCoder Beginner Contest 301)に参加しました。

atcoder.jp

GW期間中はコンテスト開催が無かったので、2週間ぶりのRatedコンテスト。

今回もとりあえず、入水目指して水パフォ目標で挑みます。

今回の結果

今回は、4完で終了となりました。

ABC301結果
ABC301結果

が、、パフォーマンスは水色の中間ぐらいという、良好な結果となり、レートはだいぶ上昇。入水に向けて、また一歩前進したという所です。

振り返り

E問題を解き切ることが出来ませんでした。

ABC301提出結果
ABC301提出結果

A問題

A - Overall Winner

Tの数と、Aの数をカウントして、多い方が勝者。同数の場合は、Sの末尾の文字でない方が勝者となる。

3分34秒で1完。

提出コード

https://atcoder.jp/contests/abc301/submissions/41346596

B問題

B - Fill the Gaps

問題文の通りに愚直で実装。この辺りからDDosの影響か、提出ページを開くのに大分時間がかかってしまいました。

提出したら問題なくAC。10分18秒で2完です。

提出コード

https://atcoder.jp/contests/abc301/submissions/41351858

C問題

C - AtCoder Cards

好きなように並び替えができるので、考慮すべきなのは、文字列内に含まれている各文字の個数のみとなる。

文字列S, T内に含まれる文字をカウントし、aからzについて個数を比較。

atcoderに含まれる文字の個数に差分が生じる時は、@を使う事で埋める事ができるかを検証。できない場合は負け。

atcoderに含まれない文字の個数に差分が生じる時は、負け判定となる。

と、こんな感じの実装で、なんとかACがとれましたとさ。

24分9秒で3完。

提出コード

https://atcoder.jp/contests/abc301/submissions/41360957

D問題

D - Bitmask

当初、二分探索するやつかと思ったが、検討外れ。少し余計な時間をかけてしまいました。

まずは、Sから作れる最小値を求め、それがNより大きい場合は-1が答え。

N以下の場合は、上位ビットから貪欲に?1に変換した時にNを超えないかをチェック。超えない場合のみ1に変換する。

と、こんな感じの実装でACが取れました。42分28秒で4完。

提出コード

https://atcoder.jp/contests/abc301/submissions/41369987

E問題

E - Pac-Takahashi

順位表から見て、F問題以降が絶望的な難易度なのがわかったので、残り時間は全てE問題に集中するつもりで臨みました。

問題を見たところ、グリッド上で巡回セールスマン問題的なことをやるという雰囲気。

とりあえず、グリッド上の各点において、どのお菓子マスを通ったかの集合Sに対する最小移動回数を管理する最短経路問題として解いてみることに。

が、、サンプルはなんとか通ったものの、サンプル3がローカルでも10秒ぐらいかかるという状態。。

とりあえずWAは無さそうなので、ダメ元で提出しましたが、案の上TLEを喰らって終了。

結局、このTLEを取る手段がわからずのまま、終了時間になりましたとさ。

F問題

F - Anti-DDoS

問題すら見ておりません。

G問題

G - Worst Picture

問題すら見ておりません。

Ex問題

Ex - Difference of Distance

問題すら見ておりません。

これまでの実績

入水に向けて一歩前進です。

コンテスト実績
コンテスト実績

総括

今回のE問題は、解けていれば青パフォぐらいはいけたという感じでしたが、惜しくも解けず。

TSPの問題の解法は、知識はありましたが、それが応用できるぐらいまでには理解できてなかったというところでしょう。とりあえず、今回の復習を行い、次回同種の問題が出た時に対応できるように準備していきます。

ということで、また次回も頑張ります。