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

コンテスト情報

AtCoder Beginner Contest 467 - AtCoderatcoder.jp favicon

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

A 問題

  • Difficulty: 76 / NoviSteps: 5Q / 解答時間: 2:18

問題概要

BMI=体重[kg]身長[m]×身長[m]\mathrm{BMI} = \frac{\text{体重}[\mathrm{kg}]}{\text{身長}[\mathrm{m}] \times \text{身長}[\mathrm{m}]}

で計算される BMI[kg/m2]\mathrm{BMI}[\mathrm{kg}/\mathrm{m}^2]2525 以上の人は日本では肥満とされる。 身長 H[cm]H[\mathrm{cm}]、体重 W[kg]W[\mathrm{kg}] の人が肥満であるかどうかを判定せよ。

解答方針

  • HHcm\mathrm{cm} 単位で与えられるので、 m\mathrm{m} 単位に変換する必要がある。
  • したがって、以下を判定すればよい。
    • W(H100)225    10000W25H2\frac{W}{\left( \tfrac{H}{100} \right)^2} \geq 25 \iff 10000 W \geq 25 H^2

  • 小数計算でゴリ押すと、 WA を食らうらしい。A問題なのに細かい。

ABC 467 A - Obesityyuulisio.com favicon

B 問題

  • Difficulty: 39 / NoviSteps: 7Q / 解答時間: 2:58

問題概要

高橋君は NN 軒の店で買い物をした。

はじめ、高橋君は 1000010000 円持っており、 ii 軒目の店では AiA_i 円の商品を買って BiB_i 円支払った。 そして、 Si=S_i =keepの時、高橋君はお釣りを受け取らず、 Si=S_i =takeの場合、お釣りを受け取った。

高橋君が全ての店でお釣りを受け取っていた場合に比べて損した金額を求めよ。

解答方針

  • 問題文の指示通りにシミュレーションしていけばよい。

ABC 467 B - Keep the Changeyuulisio.com favicon

C 問題

  • Difficulty: 608 / NoviSteps: 2Q / 解答時間: 9:32

問題概要

00 以上 M1M-1 以下の整数からなる整数列 A=(A1,A2,,AN),B=(B1,B2,,BN1)A=(A_1,A_2,\dots,A_N), \, B=(B_1,B_2,\dots,B_{N-1}) が与えられる。

AA に対して以下の操作を好きな回数行う。

  • 11 以上 NN 以下の整数 ii11 つ選び、AiA_i11 を加える。

以下の条件を満たすようにするために必要な操作回数の最小値を求めよ。

  • i=1,2,,N1i=1,2,\dots,N-1 について、Ai+Ai+1A_i+A_{i+1}MM で割った余りは BiB_i に等しい。

解答方針

  • M=2M = 2 なので、 AiA_i0011 のいずれかであり、これはビット列とみなしてよい。
  • 操作後のビット列を xix_i として、条件を満たすためには、 xi+1=xiBix_{i+1} = x_i \oplus B_i が成り立てばよい。
    • つまり、最初のビット x1x_1 を決めると、残りの N1N-1 個のビットは一意に決まる。
  • 元の AiA_i が取り得る値は 0011 なので、 ii 番目の要素に対する操作回数は、
    • AixiA_i \neq x_i の場合は 11
    • Ai=xiA_i = x_i の場合は 00
  • 22 回以上余分に加えると偶奇は同じまま操作回数だけ増えるので、各要素への操作は高々 11 回としてよく、最初のビット x1x_100 とした場合と 11 とした場合の両方を試して、操作回数の合計が少ない方を選べばよい。

ABC 467 C - Adjacent Sums (easy)yuulisio.com favicon

D 問題

  • Difficulty: 928 / NoviSteps: 1Q / 解答時間: 13:45

問題概要

xyxy 平面上に以下の条件を全て満たす 22 個の円 C1,C2C_1, C_2 は存在するか判定せよ。 ただし、 C1,C2C_1, C_2 は同一である可能性があります。

  • 異なる 22(Px,Py),(Qx,Qy)(P_x, P_y), (Q_x, Q_y)C1C_1 の円周上にある。
  • 異なる 22(Rx,Ry),(Sx,Sy)(R_x, R_y), (S_x, S_y)C2C_2 の円周上にある。
  • C1C_1C2C_2 は中心が一致する。

解答方針

  • まず、平面上の2点を通る円の中心は、その2点を結ぶ線分の垂直二等分線上にあるから、線分 PQ\mathrm{PQ} の垂直二等分線と線分 RS\mathrm{RS} の垂直二等分線が交点を持つならば、その交点を中心とする円 C1,C2C_1, C_2 が存在する。
  • また、両者の垂直二等分線が交点を持たない場合でも、2つの垂直二等分線が一致するならば、条件を満たす円が存在する。
  • 実装では、線分 PQ\mathrm{PQ} の方向ベクトルを a\bm{a}、線分 RS\mathrm{RS} の方向ベクトルを b\bm{b} 、線分 PQ\mathrm{PQ} と線分 RS\mathrm{RS} の中点を結ぶ線分の方向ベクトルを d\bm{d} とすると、
    • a×b0\bm{a} \times \bm{b} \neq 0 ならばYes
    • a×b=0ad=0\bm{a} \times \bm{b} = 0 \land \bm{a} \cdot \bm{d} = 0 ならばYes
    • それ以外なら、No

ABC 467 D - Concentric Circlesyuulisio.com favicon

成績

Contest Result - AtCoderatcoder.jp favicon
  • 順位: 1167th / 13076
  • Performance: 1610
  • 1381 → 1406 (+25) Highest更新!

D問題が425点問題でヒヤヒヤしていたが、結果的には幾何問題でベクトルを使って簡単に解けたのでよかった。

E問題を解けなかったのは微妙だが、この成績なら全然OK。