2026年3月25日水曜日

AtCoder Beginner Contest 450

 ABCDFの五完。なんとかFを解けて良かった。

コンテスト後のツイート

E - Fibonacci String

 コンテスト中のコードを修正してAC。

 コンテスト中に見逃していたのは、[L,R]の文字の個数は[0,R]の範囲のものから[0,L-1]のものを引いて求められるということだった。基本的なことだけれどなぜか忘れて最後まで気付けなかった。
 [L,R]のまま扱おうとしたことでlが大きい場合にREになるコードになっていたのも本質的にまずい。これも、ここを直すと自然と修正された。

 これでREが取れ、再帰の変数を一個減らすことができ、メモ化再帰を用いてcodonでAC。

 しかし、PyPyではACできず、なぜ? と思ったが、メモ化再帰で使っているdictのせいで遅くなっていた。
 再帰の回数は少なく、あえてメモ化する必要はない。各段階での文字の個数は前計算できるので、それを使えばPyPyでもACできた。



0 件のコメント:

コメントを投稿