きろく

特筆すべき記録のまとめ

CODE FESTIVAL 2018 Final:D - Three Letters

問題

beta.atcoder.jp

解法

各文字列ごとにある場所 p より左右それぞれに文字 c があるかどうかを前計算しておき,各場所 p ごとに考えられる略称を全探索していき,数えておく.考えられる略称のうち最も数えた数が多いものが答えになる.O(N + |S_sum| * (52^2) + 52^3) でかなり重い.

解答

beta.atcoder.jp

複数回 TLE を出した.計算量上はぎりぎり通りそうだと思ったので,std::vector を int の固定配列に変えたり,std::map を使うのをやめたりし,言語設定を GCC から Clang に変更することで何とか 1920 ms で通った.

f:id:babcs2035:20181217151958p:plain