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

コンテスト情報

AtCoder Beginner Contest 449 - AtCoderatcoder.jp favicon

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

A 問題

  • Difficulty: 30 / NoviSteps: ??? / 解答時間: 1:26

問題概要

正整数 DD が与えられるので、直径が DD の円の面積を求めよ。

解答方針

  • π(D2)2=πD24\displaystyle \pi \left(\frac{D}{2}\right)^2 = \frac{\pi D^2}{4} を計算して出力すればよい。

ABC 449 A - πyuulisio.com favicon

B 問題

  • Difficulty: 45 / NoviSteps: ??? / 解答時間: 3:52

問題概要

HHWW 列のブロックからなる長方形状のチョコレートがある。

QQ 個のクエリが与えられるので、順に処理せよ。 クエリは以下のいずれかの形式で与えられる。

  • 1 R: 下 RR 行のチョコレートのブロックの個数を求め、それらを食べる。
  • 2 C: 右 CC 列のチョコレートのブロックの個数を求め、それらを食べる。

解答方針

  • クエリを処理するごとに、H,WH, W をそれぞれ更新していく。
  • クエリ1では、RWRW を出力した後に HHRH \leftarrow H-R とすればよい。
  • クエリ2では、HCHC を出力した後に WWCW \leftarrow W-C とすればよい。

ABC 449 B - Deconstruct Chocolateyuulisio.com favicon

C 問題

  • Difficulty: 330 / NoviSteps: ??? / 解答時間: 5:32

問題概要

英小文字からなる長さ NN の文字列 SS が与えられるので、整数の組 (i,j)(i, j) であって、以下の条件をすべて満たすものの個数を求めよ。

  • 1ijN1 \leq i \leq j \leq N
  • Si=SjS_i = S_j
  • LjiRL \leq j - i \leq R

解答方針

  • 各アルファベットについて、 SS での出現位置をそれぞれ小さい順に頻度配列として記録していく。
  • SSii 文字目に注目したとき、 jj として見るべき範囲は i+Lji+Ri + L \leq j \leq i + R である。
  • したがって、頻度配列の SiS_i の要素について i+Li + L 以上 i+Ri + R 以下のものがいくつあるかを二分探索で数え、それを全ての ii について合計すればよい。

ABC 449 C - Comfortable Distanceyuulisio.com favicon

D 問題

  • Difficulty: 927 / NoviSteps: ??? / 解答時間: 45:48

問題概要

22 次元座標平面があり、座標が (x,y)(x, y) である格子点は max(x,y)\max(|x|, |y|) が偶数のとき黒、奇数のとき白で塗られている。

LxRL \leq x \leq R かつ DyUD \leq y \leq U を満たす整数の組 (x,y)(x, y) のうち、座標 (x,y)(x, y) が黒く塗られているものの個数を求めよ。

解答方針

  • f(X,Y):=f(X, Y) := 0xX0 \leq x \leq X かつ 0yY0 \leq y \leq Y の範囲の格子点で、黒く塗られているものの個数」と定義する(ただし、 XYX \leq Y)。
    • 0yX0 \leq y \leq X の正方形部分の黒の点の個数 c1c_1 は、 c1={(X+1)(X+2)2(X が偶数)X(X+1)2(X が奇数)c_1 = \begin{cases} \dfrac{(X+1)(X+2)}{2} & (X \text{ が偶数}) \\ \dfrac{X(X+1)}{2} & (X \text{ が奇数}) \end{cases} と求められる。
    • XyYX \leq y \leq Y の長方形部分の黒の点の個数 c2c_2 について、c2=(Y2X2)(X+1)c_2 = \left( \left\lfloor \dfrac{Y}{2} \right\rfloor - \left\lfloor \dfrac{X}{2} \right\rfloor \right) (X + 1)
    • f(X,Y)=c1+c2f(X, Y) = c_1 + c_2
  • 与えられた矩形範囲を第1象限に分割・移動する。
  • 矩形範囲 0lxr0 \leq l \leq x \leq r かつ 0dyu0 \leq d \leq y \leq u における黒の点の個数は、包除原理により f(r,u)f(l1,u)f(r,d1)+f(l1,d1)f(r, u) - f(l-1, u) - f(r, d-1) + f(l-1, d-1) と求められる。

ABC 449 D - Make Target 2yuulisio.com favicon

成績

Contest Result - AtCoderatcoder.jp favicon
  • 順位: 1974th / 12335
  • Performance: 1333
  • 1242 → 1251 (+9)

D問題、これで緑下位Diffか。

方針は悪くなかったと思うけど、実装に時間かかりすぎたかもしれない。