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

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

シミュレーション

AtCoder ABC 265 C - Belt Conveyor (4Q, 灰色, 300 点)

二次元グリッド上を上下左右に動いていくシミュレーション問題。無限ループの判定が少しややこしい。 問題へのリンク 問題概要 のグリッドがあり、各マスには U, D, L, R のいずれかが書かれている。それぞれ、上、下、左、右へと進む指示を表している。 た…

AtCoder ABC 354 A - Exponential Plant (6Q, 灰色, 100 点)

while 文の練習! 問題へのリンク 問題概要 0 日目には 0 cm の植物がある。 日目の夜に植物は cm 伸びる。 朝に植物を観察するとき、高さが最初に を超えるのは何日目か? 制約 考えたこと 「高さが 以下であるうちは反復し続ける」というような while 文を…

AtCoder ABC 354 B - AtCoder Janken 2 (6Q, 灰色, 200 点)

文字列を辞書順にソートする方法を確認しておこう! 問題へのリンク 問題概要 人のユーザーがいて、 人目の名前は 、レーティングは である。 レーティングの総和を で割った余りを としたとき、各ユーザーの名前のうち、辞書順で小さい順に 番目のものを求…

AtCoder ABC 354 C - AtCoder Magics (2Q, 茶色, 350 点)

いろんな方法がありそう。こういうのを工夫して解き切る腕力はいつだって大事になる。 問題へのリンク 問題概要 個のペア値 が与えられる。 ある について かつ を満たすとき、ペア値 を削除する操作を繰り返す。 最後に残るカードの集合を求めよ。 制約 考…

JOI 一次予選 2024 (第 2 回) D - 繰り返し (6Q, 難易度 3)

for 文や while 文を書き慣れている人でも、終了条件を「反復回数満了」以外の方法で記述するのは、意外と戸惑うかもしれない。 問題へのリンク editorial 問題概要 黒板に書かれた整数に対して、以下の操作を繰り返し行う。 書かれた整数 が 3 で割り切れる…

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

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

AtCoder ABC 227 A - Last Card (7Q, 灰色, 100 点)

これは難しいですね。何も考えずに for 文で求めるのが比較的楽でしょうか。 問題へのリンク 問題概要 と番号のついた 人に、 枚のカードを配っていく。 人 から始めて、人 の順に 1 枚ずつカードを配るとき、最後のカードは誰に配られるでしょうか? 解法 1…

AtCoder ABC 161 A - ABC Swap (灰色, 100 点)

言われた通りの操作を愚直に実行するのが、何も考えなくてよくて楽だと思う! 問題へのリンク 問題概要 箱 A, B, C に、それぞれ数 の書かれたカードを入れる。 箱 A, B の中身を入れ替える 箱 A, C の中身を入れ替える これらの操作を順に実行したあとの、…

AtCoder ABC 328 D - Take ABC (茶色, 425 点)

stack を使ってカッコ列判定をする問題の亜種! 問題へのリンク 問題概要 3 種類の文字 'A'、'B'、'C' からなる文字列 が与えられる。この文字列に対して、「左から見ていって "ABC" があったら消す」を何度も繰り返していって残る文字列を答えよ。 制約 考…

AtCoder ABC 323 D - Merge Slime (緑色, 425 点)

素朴なシミュレーションが通るものの、それを正確に実装するのも結構大変 問題へのリンク 問題概要 種類のスライムがいる。 種類目のスライムは、サイズが であり、 体いる。 一般にサイズが であるスライムを 2 体合体させて、新たにサイズが のスライムを …