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

AtCoder Beginner Contest 466 - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
AtCoder
コンテスト時間: 2026-07-11(土) 21:00 ~ 2026-07-11(土) 22:40 (100分)
- Difficulty: 16 / NoviSteps: 7Q / 解答時間: 1:47
N 個の選択肢があり、 i 番目の選択肢を選んだときの嬉しさは Xi である。
どの選択肢を選んでも嬉しさが負になる場合はYesを、そうでない場合はNoを出力せよ。
- 全ての i について Xi<0 が成り立つかどうかを判定すればよい。

ABC 466 A - Compromise
ABC 466 A - Compromise の考察記事です。
Yuulis I/O
- Difficulty: 37 / NoviSteps: 6Q / 解答時間: 2:12
N 個のボールがあり、 i 番目のボールの色は Ci 、大きさは Si である。
k=1,2,…,M について、色 k のボールの大きさの最大値を出力せよ。
- ボールの色ごとに
setを用意して、その大きさを格納していく。
- その後、各 k について、対応する
setの末尾の値(最大値)を出力すればよい。

ABC 466 B - Representative Balls
ABC 466 B - Representative Balls の考察記事です。
Yuulis I/O
- Difficulty: 658 / NoviSteps: 2Q / 解答時間: 8:38
最初、あなたには整数 N のみが与えられる。
その後、あなたはジャッジに以下の質問を 2N 回まで行うことができる。
? i j: 1≤i<j≤N を満たす整数 i,j を選び、点 i と点 j の距離が 1 以下であるか質問する。
距離が 1 以下の 2 点組の個数 X を出力せよ。
- 点 i に対して、自身よりも右側にあって、距離が 1 以下のもので最大の番号の点を ri とすると、点 i と組にできる点の個数は ri−i 個であるから、これを全ての i について求めて足し合わせればよい。
- ここで、組 (i,ri) の距離が 1 以下であるなら組 (i+1,ri) の距離も 1 以下であることから、尺取り法の要領で ri を単調増加に求めることができる。
- 質問回数は最大でも 2(N−1) 回で済む。
- ABCでは超久々のインタラクティブ問題でビビった。
- ...ただ、よく見たら単なる尺取り法だったので一安心。
- インタラクティブ問題が忌避され過ぎて、D問題と Diff が逆転してしまっている。

ABC 466 C - Count Close Pairs
ABC 466 C - Count Close Pairs の考察記事です。
Yuulis I/O
- Difficulty: 494 / NoviSteps: 2Q / 解答時間: 17:15 + WA x1
N×N のマス目があり、最初、マス目の上には何も置かれていない。
マス目に対して、以下の操作を M 回行う。
- 上から Ri 行目のマスに置かれているコマをすべて取り除く。
- 次に、左から Ci 列目のマスに置かれているコマをすべて取り除く。
- 最後に、上から Ri 行目かつ左から Ci 列目のマスにコマを置く。
M 回の操作の後でマス目に置かれているコマの個数を出力せよ。
- i 回目の操作で駒がマス (Ri,Ci) に置かれたとすると、最終的にマス (Ri,Ci) に駒が残るためには、以下の両方の条件を満たす必要がある。
- 行 Ri に対して最後に行われた操作が i 回目の操作であること
- 列 Ci に対して最後に行われた操作が i 回目の操作であること
- この条件を満たす i の個数を数えればよい。
- 行・列の最後の操作回を記録する配列の長さを間違えて1ペナ。
- なんでサンプル通っちゃうの...?

ABC 466 D - Placing Rooks
ABC 466 D - Placing Rooks の考察記事です。
Yuulis I/O
- Difficulty: 1027 / NoviSteps: 1Q / 解答時間: 33:06
N 枚のカードが並んでいて、カードには 1,2,…,N の番号が付けられている。
カード i の表面には整数 Ai が、裏面には整数 Bi が書かれており、はじめ、すべてのカードは表面が上を向いている。
これから、以下の操作を高々 K 回行うことができる。
- 1≤l≤r≤N なる整数 l,r を選ぶ。l≤i≤r なる各整数 i について、カード i を裏返す。
操作を終えた後、各カードの上を向いている面に書かれている数の総和として考えられる最大値を求めよ。
- 重複した区間の操作は考える必要がないことをに気づければ、 Di=Bi−Ai とおくことで、問題を以下のように言い換えることができる。
- 長さ N の数列 (D1,D2,…,DN) が与えられるので、高々 K 個の互いに重ならない区間を選び、その区間に含まれる整数の総和を最大化せよ。
- これは、以下の2つのDPテーブルを定義することで、動的計画法によって解くことができる。
- dp0[i][j]:= ここまでに j 個の区間を選び、カード i を裏返さない場合の Di の総和の最大値
- dp1[i][j]:= ここまでに j 個の区間を選び、カード i を裏返す場合の Di の総和の最大値
- 初期値は、 dp0[0][0]=0 であり、他の値は −∞ とする。
- 遷移は以下のようになる。
- dp0[i][j]=max(dp0[i−1][j],dp1[i−1][j])
- dp1[i][j]=max(dp0[i−1][j−1],dp1[i−1][j−1])+Di
- 最終的な答えは、
- max(dp0[N][j],dp1[N][j])(j=0,1,…,K)
- これに ∑i=1NAi を加えた値となる。

ABC 466 E - Range Flip
ABC 466 E - Range Flip の考察記事です。
Yuulis I/O

Contest Result - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
AtCoder
- 順位: 1786th / 13301
- Performance: 1439
- 1375 → 1382 (+7) Highest更新!
まさかここでインタラクティブ問題が出てくるとは思わなかった。
AHCで慣れててよかったー