JPRSプログラミングコンテスト2026#1(AtCoder Beginner Contest 442) コンテストまとめ

コンテスト情報

JPRS Programming Contest 2026#1 (AtCoder Beginner Contest 442) - AtCoderatcoder.jp favicon

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

A 問題

  • Difficulty: 10 / NoviSteps: 8Q / 解答時間: 1:15

問題概要

英小文字からなる文字列 SS が与えられる。

英小文字に含まれるドットの個数を以下のように定めるとき、SS のすべての文字に対するドットの個数の和を求めよ。

  • 英小文字がiまたはjであるとき : 11
  • 英小文字がi, jのいずれでもないとき : 00

解答方針

  • SS の各文字を順に見ていき、iまたはjであればカウンターを 11 増やせばよい。

ABC 442 A - Count .yuulisio.com favicon

B 問題

  • Difficulty: 27 / NoviSteps: 6Q / 解答時間: 3:31

問題概要

高橋君は音楽プレイヤーを持っている。 はじめ、音量は 00 であり、曲は停止中である。

これから、QQ 回の操作を順に行う。 ii 回目の操作は整数 AiA_i によって表され、操作の内容は以下の通り。

  • Ai=1A_i = 1 : 音量を 11 上げる。
  • Ai=2A_i = 2 : 現在の音量が 11 以上であれば音量を 11 下げ、00 であれば何もしない。
  • Ai=3A_i = 3 : 曲が停止中であれば曲を再生し、曲が再生中であれば曲を停止する。

i=1,2,,Qi = 1, 2, \cdots, Q 回目の操作を終えた直後に音量 33 以上で音楽が再生されているか、それぞれ判定せよ。

解答方針

  • プレイヤーの再生状態と音量を管理し、シミュレーションしていけばよい。

ABC 442 B - Music Playeryuulisio.com favicon

C 問題

  • Difficulty: 174 / NoviSteps: 4Q / 解答時間: 6:15

問題概要

NN 人の研究者がおり、i=1,2,,Mi = 1, 2, \ldots, M に対して研究者 AiA_i と研究者 BiB_i は互いに利害関係にある。 論文の査読者は、その論文の著者とは異なり、著者と利害関係にない相異なる 33 人の研究者でなければならない。

i=1,2,,Ni = 1, 2, \ldots, N について以下の問題を解け。

  • 研究者 ii が著者である論文の査読者の 33 人組として考えられるものは何通りあるか求めよ。

解答方針

  • 研究者間の利害関係のグラフを考えたとき、研究者 ii 自身とその隣接頂点を除いた人から 33 人を選ぶ組み合わせの数を求めればよい。
  • 頂点 ii の次数を did_i とすると、求める組み合わせの数は二項係数 (N1di3)\displaystyle \binom{N - 1 - d_i}{3} である。

ABC 442 C - Peer Reviewyuulisio.com favicon

D 問題

  • Difficulty: 293 / NoviSteps: 2Q / 解答時間: 8:07

問題概要

長さ NN の数列 AA が与えられる。

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

  • 1 x : AxA_xAx+1A_{x+1} の値を入れ替える。
  • 2 l r : lirAi\displaystyle \sum_{l\leq i\leq r} A_i の値を求める。

解答方針

  • クエリ1は「区間内の1点更新を2回行う」、クエリ2では「任意の区間和を求める」ことに対応する。
  • これを高速に行えるデータ構造はSegment Treeなどである。これらを用いて実装すれば簡単に解ける。

ABC 442 D - Swap and Range Sumyuulisio.com favicon

E 問題

  • Difficulty: 1355 / NoviSteps: 1D / 解答時間: 63:07

問題概要

二次元平面上に NN 体のモンスターがいて、モンスター ii がいる場所の座標は (Xi,Yi)(X_i,Y_i) である。

この平面上の原点には高橋君が立っている。 高橋君の目からは強力なレーザーが常に照射されており、高橋君が向いている方向に存在する全てのモンスターは即座に消滅する。

青木君は、QQ 個の独立な思考実験を行っているので、各思考実験に対する答えを求めよ。 jj 個目の思考実験は以下の通り :

  • はじめ、高橋君はモンスター AjA_j がいる方向を向いている。今から高橋君は時計回りに回転を行い、モンスター BjB_j がいる方向を向いた瞬間に停止する。このとき、合計で何体のモンスターが消滅するか?

解答方針

  • 各モンスターの位置ベクトルを正規化し、同じ向きを向くモンスターを1つのグループにまとめる。
  • それぞれのグループの代表に対して、そのベクトルの偏角を計算し、偏角ソートを行う(π+π-\pi \rightarrow +\pi の順でソートされることに注意)。
  • ソートされた各ベクトルが所属するグループのモンスター数を累積和により前計算しておく。
  • ここで, 高橋君がモンスター AA の方向から BB の方向へ回転する際, 前者の位置ベクトルの偏角を zAz_A 、後者を zBz_B とすると、
    • zAzBz_A \geq z_B の場合 : zAz_A から zBz_B までの区間に含まれるグループのモンスター数の和を求めればよい。
    • zA<zBz_A < z_B の場合 : zAz_A から先頭までと、末尾から zBz_B までの区間に含まれるグループのモンスター数の和を求めればよい。

ABC 442 E - Laser Takahashiyuulisio.com favicon

成績

Contest Result - AtCoderatcoder.jp favicon
  • 順位: 2066th / 11653
  • Performance: 1294
  • 1260 → 1263 (+3) Highest更新!

D問題までは過去最速の速さだったのだが、E問題はもっと早く解けるべきだったらしい。