AtCoder Beginner Contest 465 コンテストまとめ

コンテスト情報

atcoder.jp favicon

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

A 問題

  • Difficulty: 12 / NoviSteps: 8Q / 解答時間: 1:01

問題概要

正の整数 A,BA,B が与えられるので、A>B×23\displaystyle A > B \times \frac{2}{3} であればYesを、そうでなければNoを出力せよ。

解答方針

  • A>B×23    3A>2B\displaystyle A > B \times \frac{2}{3} \iff 3A > 2B なので、これを満たすならYes、そうでなければNoを出力すればよい。

ABC 465 A - Supermajorityyuulisio.com favicon

B 問題

  • Difficulty: 56 / NoviSteps: 6Q / 解答時間: 10:34 + WA x1

問題概要

ある駐車場に駐車するときの料金は以下の通りである。

  • LL 時ちょうどから RR 時ちょうどまでのあいだは、11 時間停めるごとに XX の料金がかかる
  • 上に該当しない時間のあいだは、11 時間停めるごとに YY の料金がかかる

この駐車場に、日をまたぐことなく車を AA 時ちょうどから BB 時ちょうどまで停めたとき、料金はいくらになるか求めよ。

解答方針

  • 駐車時間のうち、1時間当たりの駐車料金が XX になる時間は、 max(0,min(B,R)max(A,L))\max(0, \min(B, R) - \max(A, L)) で計算できる。
  • また、1時間当たりの駐車料金が YY になる時間は、駐車時間から上記の時間を除いたものとなる。

  • 最初はご丁寧に場合分けを始めてしまったが、 A=LA = LB=RB = R の場合を考慮し忘れて1ペナ。

ABC 465 B - Parking 2yuulisio.com favicon

C 問題

  • Difficulty: 443 / NoviSteps: 2Q / 解答時間: 10:12

問題概要

整数 NNoxからなる長さ NN の文字列 SS が与えられる。 長さ NN の整数列 A=(1,2,,N)A=(1,2,\ldots,N) に対して、 k=1,2,,Nk=1,2,\ldots,N の順に以下の操作を行う:

  • Sk=S_k=oである場合、AA の先頭 kk 項を反転する。
  • Sk=S_k=x である場合、何もしない。

全ての操作を終えた後の AA を求めよ。

解答方針

  • 「空配列に対して、 k=1,2,,Nk=1,2,\ldots,N の順に、 SkS_koなら先頭に kk を追加し、 SkS_kxなら末尾に kk を追加する」と操作を言い換える。
  • あとはこの配列をdequeで管理すればよい。
  • サンプルケースから何となくエスパーできるかもしれない。

ABC 465 C - Reverse Permutationyuulisio.com favicon

D 問題

  • Difficulty: 839 / NoviSteps: 1Q / 解答時間: 19:22

問題概要

整数 X,YX,Y22 以上の整数 KK が与えられる。

変数 xx があり、はじめ x=Xx=X である。 これから、 xx に対して以下の操作を 00 回以上何回でも行うことを考える。

  • xK=y\displaystyle \left\lfloor \frac{x}{K} \right\rfloor=y または yK=x\displaystyle \left\lfloor \frac{y}{K} \right\rfloor=x を満たす整数 yy を選び、xx の値を yy に置き換える。

x=Yx=Y とするために必要な操作回数の最小値を求めよ。

解答方針

  • x,yx, y ともに KK で割るのは変わらないので、とりあえず X,YX, Y をそれぞれ KK で割り続けてみる。
    • 例えばサンプルケース1の3番目のテストケースなら、
84212017201802530\begin{align*} 842 & \to 120 \to 17 \to 2 \to 0 \\ 180 & \to 25 \to 3 \to 0 \end{align*}
  • したがって、X=YX = Y となるまで「両者の大きい方を KK で割った商に置き換える」操作を繰り返し、その回数を記録すればよい。

ABC 465 D - X to Yyuulisio.com favicon

E 問題

  • Difficulty: 1417 / NoviSteps: 1D / 解答時間: 55:06

問題概要

11 以上 NN 以下の整数 xx であって、以下の 33 つの条件のうちちょうど1つだけを満たすものの個数を 998244353998244353 で割った余りを求めよ。

  • xx33 の倍数である
  • xx の十進表記には 33 が含まれる
  • xx の十進表記にはちょうど 33 種類の数字が使われる

解答方針

  • 以下のDPテーブルを考えて、桁DPを行う。
    • dp[i][smaller][leading][mod][has3][bit]\mathrm{dp}[i][\mathrm{smaller}][\mathrm{leading}][\mathrm{mod}][\mathrm{has3}][\mathrm{bit}]
  • 遷移はそこまで複雑ではないが、 leading=1\mathrm{leading} = 1 の間は bit\mathrm{bit} を更新しないことに注意。
  • NN の桁数を ll として、ll 桁目までの更新が終わったら、dp[l][smaller][0][mod][has3][bit]\mathrm{dp}[l][\mathrm{smaller}][0][\mathrm{mod}][\mathrm{has3}][\mathrm{bit}] の各状態について、以下の条件のうちちょうど一つだけを満たす場合に限り、答えにその状態の値を加算する。
    • mod=0\mathrm{mod} = 0
    • has3=1\mathrm{has3} = 1
    • popcount(bit)=3\mathrm{popcount}(\mathrm{bit}) = 3

ABC 465 E - Digit Circusyuulisio.com favicon

成績

atcoder.jp favicon
  • 順位: 1536th / 12635
  • Performance: 1493
  • 1361 → 1375 (+14) Highest更新!

E問題をしっかり通せてうれしい。 2連続 Highest 更新もできてよかった。