最近Paizaのスキルチェックをやってました。レート1900超えたことと、Sランクになったので感じたことなどをまとめてみようと思います。
1.背景
私はAtCoderだと茶色でレートが670(Highest:684)です。最後にコンテストに参加したのが2020/07/05です。
コンテンストにちゃんと参加していたときはD問題(今と問題数が異なるときなので今のD~E問題相当のはず)が通せるか通せないかぐらいのクソ雑魚でした。
ただ、ABC001~ABC173までの問題はA~DまでACするように過去問練習をしていました。その他、大昔にICPC予選に出て0完というこの世の終わりな結果を叩き出していました。
そこから5ヶ月ぐらい経ち、研究室内でM1がPaizaのスキルチェックやっていたのを見てから、Paizaの問題を触り始めました。
2.各ランクの問題の感想
A,Sランクの問題は数問しか触れてないので、正確な感想ではないと思いますが、私の各ランクの問題への感想は次のとおりです。
rank | 感想 |
---|---|
D | 早解き練習用。1分以内に解く。できれば30秒以内。ABCのA問題より簡単か同じぐらい。サンプルを通さずにACする練習に使えるかもしれないが、AtCoderと違って30秒も1分もレーティングに与える影響は大差ないので、少なくとも入力例を一つは試そう。 |
C | 紙とペンが必要になり始める難易度。問題文を整理して何をしないといけないかちゃんと理解する。難易度に差があるので難易度1800付近は注意が必要。私は”C073:うさぎとかめ”でやらかしました。愚直な実装でいい。 |
B | 思考力より実装力が求められることが多い。”B023:マッチ棒パズル”はすごい実装が大変だった。2次元配列を弄ったり、少し典型アルゴリズムの知識が必要だったりし始める。ただ、愚直な解答で通るので難しく考えないほうがいい。アルゴリズムの知識はあったほうがいいがなくても解ける問題が多い。累積和ぐらいは知っておくといいかも。 |
A | 典型的なDP(ナップサック問題等)や幅優先探索(BFS)、深さ優先探索(DFS)などの典型アルゴリズムの知識が無いと解けない。知っていたら20分程度で実装できるが、少し工夫を加える必要がある。「知らなければ天啓、知れば典型」を地で行く難易度。 |
S | 1問しか解いてないからわからない。少なくとも典型アルゴリズムの知識は無いと無理。他の人のブログを読んでいたら難易度の差が激しいと書いてあった。確かに、”S002:最短距離を測る”より”A055:脱出ゲーム”のほうが実装で工夫する必要が僅かにだけ多かった。 |
全体を通して、AtCoderと問題の方向性が違う。どちらかといえばICPCの問題に似ている。
AtCoderは基本的に答えが一つの値(または文字列)になることが多いが、Paizaは変更後のボードの状態であったり、各処理の結果であったりを答えさせることが多い。そのため、最後の内部状態を表示しやすいようにデータを持つことを考えることがたまに必要。
また、AtCoderでは問題の制約式は問題文の下に来るが、Paizaでは入力例の前、つまり入出力形式よりも後になるので、AtCoderに慣れていると違和感を感じる。私は問題を読んだ後に制約式を見て愚直な実装でいいのかどうかを考える癖があるので慣れるまで少し時間が必要だった。
3.おわりに
レートの変遷は次の写真のとおりです。
コンテスト形式でないPaizaは、不特定多数との戦いをしなくて良いので精神的に楽です。典型アルゴリズムのリハビリとしても丁度いいので今後も続けたいと思います。