きろく

特筆すべき記録のまとめ

Kodaman コンテスト:G - Osmium_1008と時間旅行

問題

https://www.hackerrank.com/contests/kodamanwithothers/challenges/osmium1008-and-timetravel

解法

年数が負の値になりうるので,全て 2*10^5 を加算して考える.ここで以下の DP を考える.

dp(i, j) := i - 1 個目までの飴を使い,今 j 年にいるとき,これから飴を使わなければならない最小の回数

遷移は i 個目の飴を使うかどうかの 2 通りに分かれる.実装上,B_i が P であるような A_i に -1 をかけておくことで DP 内での場合分けが要らなくなって楽になる.O(NK).

解答

https://www.hackerrank.com/contests/kodamanwithothers/challenges/osmium1008-and-timetravel/submissions/code/1316476452

f:id:babcs2035:20190923213257p:plain