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).
解答