Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

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

4完2WA

各問題

A - Overall Winner

実際に勝利数を数えて比較すればよいです。同数だった場合、最後の文字が 'T' なら最後の勝利が先の青木くんの勝ちで 'A' ならその逆で高橋くんの勝ちです。

コピペミスで1WA...。

B - Fillthe Gaps

愚直に間を埋めていくだけです。

C - AtCoder Cards

イカサマにより自由に並び替えてよいので、含まれる文字の数のみに注目すればよいです。

まずそれぞれの文字列に @ も含めてどの文字がいくつ含まれているかを集計します。次に英子文字についてそれぞれの文字列に含まれている数を比較します。

  • 同数なら問題ありません
  • 差がある場合
    • a, t, c, o, d, e, r のいずれかの場合
      • 少ないほうの文字列について '@' を消費することで数を合わせることができます
        • ただし '@' の数が足りなければ構築不可能です。
    • a, t, c, o, d, e, r 以外の場合
      • 数を合わせることはできません

すべての英子文字について問題なければゲームに勝つことができます。

またしてもコピペミスで1WA...。

D - Bitmask

まず文字列中の '?' をすべて0として数値に変換します。これが N を超えていた場合どうしても N 以下にはできないため答えは -1 です。

そうでない場合、上位の桁から見ていって ? を 1 に変換した数値が N を超えていない場合それは 1 としてよいです。それを 0 として、それより下位のビットをすべて立てたとしてもそちらの方が小さい数となるので考慮する必要はありません。

E - Pac-Takahashi

ビットDPかそれに類する(メモ化)再帰で何とかなりそうと思いましたが、半数ほどが WA で終戦...。

まとめ

まさか一つのコンテストで二回もコピペミスをやらかすとは...。