2023/5/13に開催された、パナソニックグループプログラミングコンテスト2023(AtCoder Beginner Contest 301)に参加しました。
GW期間中はコンテスト開催が無かったので、2週間ぶりのRatedコンテスト。
今回もとりあえず、入水目指して水パフォ目標で挑みます。
Rated参加します。
— devgenjin77 (@devgenjin77) 2023年5月13日
今回も水パフォ目標で頑張ります✊
パナソニックグループプログラミングコンテスト2023(AtCoder Beginner Contest 301) - AtCoder https://t.co/CK0EC8uci1
今回の結果
今回は、4完で終了となりました。
が、、パフォーマンスは水色の中間ぐらいという、良好な結果となり、レートはだいぶ上昇。入水に向けて、また一歩前進したという所です。
水パフォ😂😂
— devgenjin77 (@devgenjin77) 2023年5月13日
devgenjin77さんのパナソニックグループプログラミングコンテスト2023(AtCoder Beginner Contest 301)での成績:1078位
パフォーマンス:1420相当
レーティング:1125→1158 (+33) :)#AtCoder #パナソニックグループプログラミングコンテスト2023(ABC301) https://t.co/V5MvcY7ceC
振り返り
E問題を解き切ることが出来ませんでした。
A問題
T
の数と、A
の数をカウントして、多い方が勝者。同数の場合は、の末尾の文字でない方が勝者となる。
3分34秒で1完。
提出コード
https://atcoder.jp/contests/abc301/submissions/41346596
B問題
問題文の通りに愚直で実装。この辺りからDDosの影響か、提出ページを開くのに大分時間がかかってしまいました。
提出したら問題なくAC。10分18秒で2完です。
提出コード
https://atcoder.jp/contests/abc301/submissions/41351858
C問題
好きなように並び替えができるので、考慮すべきなのは、文字列内に含まれている各文字の個数のみとなる。
文字列内に含まれる文字をカウントし、a
からz
について個数を比較。
atcoder
に含まれる文字の個数に差分が生じる時は、@
を使う事で埋める事ができるかを検証。できない場合は負け。
atcoder
に含まれない文字の個数に差分が生じる時は、負け判定となる。
と、こんな感じの実装で、なんとかACがとれましたとさ。
24分9秒で3完。
提出コード
https://atcoder.jp/contests/abc301/submissions/41360957
D問題
当初、二分探索するやつかと思ったが、検討外れ。少し余計な時間をかけてしまいました。
まずは、から作れる最小値を求め、それがより大きい場合は-1
が答え。
以下の場合は、上位ビットから貪欲に?
を1
に変換した時にを超えないかをチェック。超えない場合のみ1
に変換する。
と、こんな感じの実装でACが取れました。42分28秒で4完。
提出コード
https://atcoder.jp/contests/abc301/submissions/41369987
E問題
順位表から見て、F問題以降が絶望的な難易度なのがわかったので、残り時間は全てE問題に集中するつもりで臨みました。
問題を見たところ、グリッド上で巡回セールスマン問題的なことをやるという雰囲気。
とりあえず、グリッド上の各点において、どのお菓子マスを通ったかの集合に対する最小移動回数を管理する最短経路問題として解いてみることに。
が、、サンプルはなんとか通ったものの、サンプル3がローカルでも10秒ぐらいかかるという状態。。
とりあえずWAは無さそうなので、ダメ元で提出しましたが、案の上TLEを喰らって終了。
結局、このTLEを取る手段がわからずのまま、終了時間になりましたとさ。
F問題
問題すら見ておりません。
G問題
問題すら見ておりません。
Ex問題
問題すら見ておりません。
これまでの実績
入水に向けて一歩前進です。
総括
今回のE問題は、解けていれば青パフォぐらいはいけたという感じでしたが、惜しくも解けず。
TSPの問題の解法は、知識はありましたが、それが応用できるぐらいまでには理解できてなかったというところでしょう。とりあえず、今回の復習を行い、次回同種の問題が出た時に対応できるように準備していきます。
ということで、また次回も頑張ります。