CodeQUEEN 2026 予選 (AtCoder Beginner Contest 462) コンテストまとめ

コンテスト情報

CodeQUEEN 2026 -qual- (AtCoder Beginner Contest 462) - AtCoderatcoder.jp favicon

コンテスト時間: 2026-06-13(土) 21:00 ~ 2026-06-13(土) 22:40 (100分)

A 問題

  • Difficulty: 13 / NoviSteps: 7Q / 解答時間: 1:41

問題概要

英小文字と数字のみからなる文字列 SS が与えられるので、 SS から数字である文字だけを取り出し、元の順序のまま並べた文字列を出力せよ。

解答方針

char型の文字が数字であるかは、isdigit関数を使うと簡単に判定できる。


ABC 462 A - Secret Numbersyuulisio.com favicon

B 問題

  • Difficulty: 70 / NoviSteps: 5Q / 解答時間: 2:41

問題概要

NN 人がギフトを送り合っており、人 ii は人 Ai,1,Ai,2,,Ai,KiA_{i,1},A_{i,2},\ldots,A_{i,K_i}KiK_i 人にギフトを送った。

i=1,2,,Ni=1,2,\ldots,N に対し、人 ii にギフトを送った人を全て求めよ。

解答方針

  • BijB_{ij} を「人 ii が人 jj からギフトを受け取った」ことを表す二次元配列とすると、 1iN,1jKi1 \leq i \leq N, \, 1 \leq j \leq K_i に対して, 1次元配列 BAi,jB_{A_{i,j}}ii を追加していけばよい。

  • サークルの新入生が二次元配列を知らない状態でこの問題をACしていたが、コードを見たら一次元配列を0で区切ることにより擬似的に二次元配列を実装していて、とても興味深かった。

ABC 462 B - Giftyuulisio.com favicon

C 問題

  • Difficulty: 298 / NoviSteps: 2Q / 解答時間: 7:51

問題概要

22 次元平面上に NN 個の点があり、点 ii の座標は (Xi,Yi)(X_i,Y_i) である。 ここで、X,YX,Y はそれぞれ (1,2,,N)(1,2,\ldots,N) の順列であることが保証される。

左下の頂点を (0,0)(0,0) 、右上の頂点を (Xi,Yi)(X_i,Y_i) とする xx 軸に平行な辺と yy 軸に平行な辺のみからなる長方形の内部(辺上を含まない)に、 NN 個の点をどれも含まないような ii の個数を求めよ。

解答方針

  • i(1iN)i \: (1 \leq i \leq N) が条件を満たさない条件は
    • Xj<XiX_j < X_i かつ Yj<YiY_j < Y_i を満たす j(1jN,ji)j \: (1 \leq j \leq N, j \neq i) が存在すること
  • つまり、xx 座標が小さい点の中に自身より yy 座標も小さい点があるかを判定すればよい。
  • xx 座標の値は順列であることを利用すると、 x=1,2,,Nx = 1, 2, \cdots, N の順に見ていき、その時点までの最小の yy を持っておけばよい。

ABC 462 C - Not Covered Pointsyuulisio.com favicon

D 問題

  • Difficulty: 798 / NoviSteps: 1Q / 解答時間: 14:32

問題概要

とある館で起きた殺人事件の犯人の候補が NN 人いる。 人 ii は時刻 SiS_i に館に入り、時刻 TiT_i に館を出て、ほかの時刻には出入りしなかった。

犯行について以下のことが分かっている。

  • 犯人はちょうど 22 人いる。
  • 犯行はある整数時刻 xx に開始し、DD 単位時間かけて行われ、時刻 x+Dx + D に完了した。
  • 犯人は 22 人とも犯行開始から犯行完了まで常に館にいた(犯行開始と同時に館に入ったり、犯行完了と同時に館を出たりした可能性もある)。

NN 人の犯人候補の中に犯人が 22 人ともいると仮定したとき、22 人の犯人の組み合わせと犯行開始時刻の組としてありうるものは何通りあるか求めよ。

解答方針

  • ii が時刻 tt に犯行可能である条件は以下の通り。
    • SitTiDS_i \leq t \leq T_i - D
  • ある時刻 tt に犯行可能な人の数を ctc_t とすると、ctc_t 人の中から犯人を 22 人選ぶ方法は ct(ct1)2\frac{c_t(c_t - 1)}{2} 通りあるので、全ての時刻 tt についてこれを足し合わせたものが求める答えとなる。
  • 今回は時刻の上限が 10610^6 なので、長さ 10610^6 の配列を用意して、imos法の要領で [Si,TiD][S_i, T_i - D] を区間加算していくことで ctc_t を求めることができる。

ABC 462 D - Accompliceyuulisio.com favicon

E 問題

  • Difficulty: 1226 / NoviSteps: 1Q / 解答時間: 38:50 + WA x1

問題概要

二次元平面上にコマが置かれており、はじめコマは座標 (0,0)(0,0) にある。 「コマを上下左右に1マス移動させる」操作を 00 回以上行って、コマを座標 (X,Y)(X,Y) に移動させるために必要なコストの総和の最小値を求めよ。

ただし、 kk 回目に行う操作にかかるコストは kk の偶奇によって異なり、それぞれ以下の通りである。

  • kk が奇数のとき:左右に移動させる場合のコストは AA、上下に移動させる場合のコストは BB である。
  • kk が偶数のとき:左右に移動させる場合のコストは BB、上下に移動させる場合のコストは AA である。

解答方針

  • 対称性より、 x=X,y=Yx = |X|, \, y = |Y| として考えてよい。
  • 2手で斜め方向に1マス進むときの最小コストは 2min(A,B)2 \min(A, B) であり、この移動方法は min(x,y)\min(x, y) 回使える。
  • 縦 or 横方向に2マス進むときの最小コストは min(A+B,4min(A,B))\min(A + B, 4 \min(A, B)) であり、この移動方法は xy2\left\lfloor \frac{|x - y|}{2} \right\rfloor 回使える。
  • xy|x - y| が奇数のときは、最後に1マス進む必要があるが、そのときのコストは単に1回移動するときと3回移動して遠回りする場合を比較する必要がある。
    • x>yx > y なら横に1マス進む場合のコストは min(A,3B)\min(A, 3B) である。
    • x<yx < y なら縦に1マス進む場合のコストは min(3A,B)\min(3A, B) である。

  • 最後の1マス進むときのコストの考察をし忘れて1ペナ。

ABC 462 E - Alternating Costsyuulisio.com favicon

成績

atcoder.jp favicon
  • 順位: 1397th / 12512
  • Performance: 1513
  • 1307 → 1329 (+22) Highest更新!

E問題までは全体的に高度なアルゴリズム・データ構造を必要としない、割と考察寄りのセットだった印象。

約1か月ぶりにHighest更新できて嬉しい。