本記事は5/23に下書きを作成、6/6 18時に提出履歴を確認して微修正、公開されました。

はじめに

アルゴリズム実技検定(PAST)。atcoderが最近始めた検定試験である。「新型コロナウィルス感染症対策で外出自粛が続く状況を鑑みて、第三回アルゴリズム実技検定の受験資格を無償で提供いたします。」とのことなので、とりあえず受けてみようと思った。せっかくならチェックマークがつくリアルタイム受験で。

5/6

  • シリアルコードを取得
  • 受験登録ページでシリアルコードを入力
  • 「検定期間開始前~リアルタイム受験終了後では、自動的にリアルタイム受験の登録となり、それ以降は、いつでも受験開始可能な通常受験となります。」とのことなので一旦入力を削除

検定

時間 言語 問題(A-O) コメント
-0:10 受験登録ページでシリアルコードを再入力
0:00 この時点ではスマホ。 問題が見られないトラブル発生。 twitter検索してもだれも報告していない。やばい。一過性のものか?床屋の用事があったので済ませる。
0:30 床屋は終わったけどまだ見られへん。やばい。
0:50 PASTはログインしてたけどatcoderはログインしてなかっただけじゃんToT
0:58 Ruby A やるだけですね(String#upcaseを使うと楽) AC
1:00 B Bのくせに制約おかしくないですか?
1:06 Ruby C 場合分けだけ気をつければやるだけですね AC
1:45 Ruby B 問題数は少ないんじゃん。。WA
1:51 Ruby F 配列のintersectionが楽に取れる点でRubyは強い AC
2:00 帰宅。ここまでスマホここからPC
2:02 Ruby B 入力値の扱いが間違ってた AC
2:07 Ruby D RubyのDATAハンドルが活用できる AC
2:17 Ruby E Nが多いが制約的に2乗にはならん、大丈夫だ AC ここまで前座(7点以上の問題は全完)。
2:29 Ruby G 普通の幅優先だけど無限グリッドか…探索上限決め打ちでいいかな WA
2:32 Ruby G 障害物座標に制約があるんなら探索上限決め打ちなんていらない AC
2:40 Python J ヒープか? -> 誤読だった
3:01 Ruby H 普通のDPか WA
3:03 Ruby H 定番のoff-by-oneだった(ジャンプ中にゴールする場合の)。これ系の問題はデバッグ難ですよね AC
3:05 M あと1問で中級かぁ。あ、M問題、CodeIQで既出やん。でもアダプタ実装がそこそこ面倒なのよね…
3:15 Ruby I 行列自体じゃなくて、行と列の配列だけを持とう サンプル合わず
3:16 Ruby I 転置する場合は(以降の)出力クエリの行と列だけじゃなくて、その時点での行と列の配列自体も交換しないといけないのね AC これで中級。激冷えを回避!
3:24 C++ N 愚直解を出しとけ TLE
3:41 C++ N 颯式を出してみろ TLE
4:16 C++ M がんばって実装した。AC
4:30 もうやれる問題ないわ(1問だけ解いても級は変わりませんしねぇ)。。投了。
5:00 70点・中級でした。お疲れ様でした。

まとめ

  • 開始ぎりぎりまでシリアルコードは入力するな
  • 現状atcoder本体へのログインをお忘れなく(要望は出しておきましたが…)w
  • 解いた順番ACFBDEGHIMとか面白いですねw
  • 序盤はスマホでもいけるがやっぱりPCは必要w
  • 競プロが鈍っていても初級までは確実に取れそう

  • Fは個人的に(通常でいう)200点的な印象だった。(BとFを交換しても良いぐらい)

  • Iは個人的に行列の数的構造に感動した。
  • 颯式、std::sortよりも少しだけ速いっぽい。
  • 既出が出たのはすこしびっくりだった。でもまあ、問題がかぶることなんてありえる話ですよね

  • 楽しかったです(が、通常8800円は高めだなぁ)