みんなのプロコン2019 D - Ears

atcoder.jp

すぬけ君一体どういう生物、、

まだこのレベルはコンテスト中に解けない気がする。

解法

すぬけ君が行ったり来たりする中で、石が数がどんどん増えていき、一つも石が入っていない耳ももちろんある状態。どれだけ石が入るかは散歩の仕方によるけれど、偶数/奇数に着目すると散歩の仕方の制約から、番号が若い耳から0個ゾーン、偶数ゾーン、奇数ゾーン、偶数ゾーン、0個ゾーンに分かれる。幅が0のゾーンもあることに注意する。

f:id:takushim:20190211163530p:plain

雑な図だけど散歩をsで始めてeで終わった場合の、各耳の石の数を表してみた。

ゾーンの幅はゼロの場合はあるけど右から左に移ることはないので、左から順に番号つけてそれを一種の状態とみなす。そして座標iとゾーンの状態でdpをしていく。

f:id:takushim:20190211164801p:plain

遷移のイメージはこんな感じ。実装する時には右側の矢印の塊みたいなイメージでやるとdpテーブルの長さをL+1にしなくても実装しやすい。

https://atcoder.jp/contests/yahoo-procon2019-qual/submissions/4230647

参考にしたサイト

http://drken1215.hatenablog.com/entry/2019/02/10/014800

https://atcoder.jp/contests/yahoo-procon2019-qual/submissions/4229534