けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

易しいクエリ処理問題

AtCoder ABC 278 C - FF (4Q, 灰色, 300 点)

SNS を題材にした set の練習問題 問題へのリンク 問題概要 人から SNS について、次の 個のクエリに答えよ(初期状態では全員が誰もフォローしていない)。 クエリタイプ 1:人 が人 をフォローする(フォロー済みの場合は何もしない) クエリタイプ 2:人 …

AtCoder ABC 235 C - The Kth Time Query (4Q, 灰色, 300 点)

連想配列の練習問題! 問題へのリンク 問題概要 長さ の整数列 が与えられる。この数列に対して、次の 個のクエリに答えよ。 【クエリ】 整数 が与えられるので、整数列を順に見ていったときの「 個目の値 の要素」の index を答えよ(存在しない場合は -1)…

AtCoder ABC 378 B - Garbage Collection (5Q, 灰色, 200 点)

演算子「%」を上手に使う系の数学問題。 問題へのリンク 問題概要 種類のゴミがある。ゴミ は、 で割って 余る日に捨てることができる。 次の 個のクエリに答えよ。 【クエリ】 ゴミ を、 日目以降に捨てたい。最短で捨てることのできる日を答えよ。 制約 考…

鉄則本 A53 - Priority Queue (4Q, ★2)

優先度付きキューを人生で初めて試すのにいい問題。 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。販売システムを模している。 クエリタイプ 1:価格が 円の商品が追加される クエリタイプ 2:今ある商品の…

鉄則本 A52 - Queue (4Q, ★2)

キューの使い方の確認! 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。行列管理システムを模している。 クエリタイプ 1:行列の最後尾に さんが並ぶ クエリタイプ 2:行列の先頭にいる人の名前を答える クエ…

鉄則本 A51 - Stack (4Q, ★2)

人生で最初に解きたいスタックの問題 問題へのリンク 問題概要 以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。 クエリタイプ 1: という題名の本を机の一番上に積む クエリタイプ 2:一番上に積まれている本の題名を答えよ クエリタイ…

JOI 二次予選 2022 A - 図書館 2 (AOJ 0719) (4Q, 難易度 2)

スタックを用いたシミュレーション問題! 問題へのリンク 問題概要 最初、本は積まれていない。次の 回のクエリに答えよ 【クエリ】 各クエリでは文字列 が与えられる。 が "READ" ではないとき、タイトルが である本が新たに上に積まれる が "READ" である…

AtCoder ABC 371 B - Taro (6Q, 灰色, 200 点)

バケットを活用する練習問題! 問題へのリンク 問題概要 AtCoder 王国には 家がある。どこかの家で順に 人の赤子が生まれた。 人目の赤子は家 で生まれ、性別は ('M' または 'F')であった。 各赤子が長男であるかどうかを判定せよ。 制約 考えたこと 人目…

AtCoder ABC 050 B - Contest with Drinks Easy (6Q, 灰色, 200 点)

for 文を回す処理を 回やる問題 問題へのリンク 問題概要 個の整数からなる数列 が与えられる。次の 回のクエリに答えよ。 【クエリ】 整数 が与えられる。 を に変更したときの、 の値を答えよ。(なお、クエリごとに変更は引き継がれない。) 考えたこと …

AtCoder ABC 344 C - A+B+C (5Q, 灰色, 250 点)

とても教育的な問題! ちゃんと解くには、計算量の理解が必要となる問題である。 問題へのリンク 問題概要 3 つの数列 が与えられる。これらの数列に対して、次の 個のクエリに答えよ。 【クエリ】 整数 が与えられるので、 からそれぞれ 1 個ずつ選んで和を…

JOI 予選 2008 F - 船旅 (AOJ 0526) (2Q, 難易度 5)

実はクエリごとに毎回愚直に Dijkstra 法を回しても間に合う! 問題へのリンク 問題概要 最初、辺数 0 本、頂点数 個のグラフが与えられる。頂点番号は である。このグラフに対して 回のクエリが投げられる。 クエリタイプ 0:2 頂点 が指定されるので、頂点…

JOI 一次予選 2022 (第 3 回) D - ボールの移動 (5Q, 難易度 3)

どのようにデータを管理すればよいか、難しいと感じるかもしれない。 問題へのリンク 問題概要 最初、箱 にそれぞれボール が入っている。 次の 回の操作を行う。 回目の操作では、ボール が入っている箱から、ボール を取り出して、それを箱 に入れる。 操…

AtCoder ABC 294 C - Merge Sequences (5Q, 灰色, 300 点)

ソートに関する練習問題! 問題へのリンク 問題概要 長さ の数列 と、長さ の数列 が与えられる。これらの数列の値はすべて互いに相異なる。 これらの 2 つの数列の各要素 について、次の値を求めよ。 2 つの数列を連結してできる長さ の数列を小さい順に並…

AtCoder ABC 361 A - Insert (7Q, 灰色, 100 点)

for 文の練習問題。 問題へのリンク 問題概要 長さ の整数列 が与えられる。 この数列の 番目の要素の直後に値 を挿入して得られる数列を出力せよ。 解法 (1):関数 erase() を利用する C++ では、vector 型変数 A に対して、 番目に値 を挿入する処理は A.i…

AtCoder ABC B - AtCoder Amusement Park (6Q, 灰色, 200 点)

繰り返し回数を計算する必要もない、本当に愚直なシミュレーション! 問題へのリンク 問題概要 人乗りのゴンドラアトラクションに対して、 組のグループが待機している。グループ の人数は 人である ( が保証される)。 各グループに対して、順に グループ人…

AtCoder ABC 350 B - Dentist Aoki (6Q, 灰色, 200 点)

「集計処理」の基本問題! 問題へのリンク 問題概要 (意訳) 個の LED が最初はすべて光っている。 回の処理を行う。 回目の処理では 番目の LED の状態を flip する (光っていたら消して、消えていたら光らせる)。 最終的に何個の LED が光っているかを求め…