Toy と帽子と ADP BE

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

トヨタ自動車プログラミングコンテスト2023#5(AtCoder Beginner Contest 320)

5完1WA1TLE

各問題

A - Leyland Number

計算します。

B - Longest Palindrome

部分文字列を全探索。

C - Slot Strategy 2 (Easy)

リールは高々3周回るうちにすべてのリールを止められるので、3周分の停止位置を全探索。

D - Relative Position

人AとBの関連でグラフを作って、人1からDFSをして座標を特定していけばよいです。

B -> A とみるとき座標の正負が入れ替わるので、map[{A, B}] = {X, Y}, map[{B, A}] = {-X, -Y} と二つ用意しておけば楽です。

E - Somen Nagashi

並んでいる人の列と、列から離れている人の列を proirity_queue で持ってシミュレートすればよいです。

並んでいる人の列について、戻るときのルールは元の位置に戻るなので、常に並んでいる人のうち最小の番号を持つ人がそうめんを得ることができます。よって番号が小さい人が優先してとれるように並べればよいです。

列から離れている人の列は、いつ戻れるかを見たいので、戻る時刻の昇順に並ぶようにすればよいです。

並んでいる人の列をboolの配列でもって常に探索してしまい1TLEと、priority_queueに置き換えたときに降順に並べてしまい1WA。うーむ。

F - Fuel Round Trip

DP できるんだろうなとは思うのですが、どうやればいいかは見当もつかず。

まとめ

悪くはない結果でしたが、Eの2ペナがなければ青パフォまで行けていたらしく...。ちょっともったいなかった。