きろく

特筆すべき記録のまとめ

いろはちゃんコンテスト Day1:H - ちらし寿司

問題

atcoder.jp

解法

x99999... とするのが最適.しかし,N が x99999... という形であった場合,問題文にある X != N という条件を満たせない.そこで,例えば X = N = 199999 となってしまったとき,X = 289999 とすることで回避できる.また,X = N = 999999 となってしまったときは,X = 1899999 とすることで回避できる.実装上は N <= 9 のときは答えを 1x と決めてしまった方が楽.O(log10(N)).

解答

atcoder.jp

f:id:babcs2035:20190430161143p:plain

 

いろはちゃんコンテスト Day1:G - 友達以上恋人以下

問題

atcoder.jp

解法

dp(i, j, k) := i - 1 日目までで,j 回好意をほのめかし,前回のほのめかしから k 日経過しているときの,i 日目以降に得られる機嫌の合計の最大値

と DP をおく.このとき遷移は,i 日目に好意をほのめかすかどうかの 2 パターンがある.もし k == K となったり j > M となったりしたらその時点で問題文の条件を満たさない.O(365 ^ 3) となるが,時間計算量の面では枝刈りが効くので間に合うが,空間計算量においては,DP テーブル・メモ配列の確保を工夫しないと MLE となってしまう.具体的には,常に j <= i であることを利用するなど.

解答

atcoder.jp

f:id:babcs2035:20190430160502p:plain