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

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

データ構造テク:どこにその要素があるのかを管理する

AtCoder ABC 373 B - 1D Keyboard (6Q, 灰色, 200 点)

各文字がどこにあるのかを求めると楽になる。 問題へのリンク 問題概要 'A' から 'Z' までの文字を 1 つずつ含む文字列 が与えられる。 内部での 'A' から 'B' への移動距離 (index の差分) 'B' から 'C' への移動距離 (index の差分) 'C' から 'D' への移動…

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

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

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

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

AtCoder ABC 350 C - Sort (3Q, 灰色, 300 点)

の計算量で良いなら簡単。 「どこに値 の要素があるのか」を管理するというテクニックをここで習得しよう! 問題へのリンク 問題概要 の並び替えである順列 が与えられる。これをソートしたい。以下の操作を 回まで実施できる。 を選んで、 と を swap する …