Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

鹿島建設プログラミングコンテスト2024(AtCoder Beginner Contest 340)

5完

各問題

A - Arithmetic Progression

(今どきはどうだか知りませんが昔の)初心者向けプログラミング書籍に必ず載っていたような for の練習問題!!

for (int i = A; i <= B; i += D) cout << i << " " とします。

B - Append

空の vector を用意しておき、1 のクエリの時は xemplace_back すればよく、2 のクエリの時は v[n - k]n はその時点での配列の長さ)を出力すればよいです。

C - Divide and Divide

ぜんっぜん、わかりませんでした。

実験したら規則性が見つかったのでそれに沿ってプログラムを書いたら通りました。

まったくもって解けたとはいえない...。

D - Super Takahashi Bros.

i から i + 1 に重み A の辺を、i から X_i に重み B の辺を張り、ダイクストラします。以上。

E - Mancala 2

atcoder::lazysegtree を使って殴ります。以上。

F - S = 1

点と直線の距離の公式と、それが 2 になることから Bx - Ay = 2 となるような整数の (x, y) があればよいとわかり、ここから Ay % B = B - 2 となるような Ay があればよいと分かったところで、時間的にも能力的にも息絶えました...。ぐぬぬ

いや、上記方針が正しい道なのかはわかってませんが。

まとめ

C が全く分からなかったわりに、D, E が(道具の使い方さえ分かっていれば)やるだけの問題で、なんだこれとなってます。