ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

Educational DP Contest / DP まとめコンテスト C - Vacation

問題
提出コード

解法

dp[i][j] = i日目に行動jを選択(0:A,1:B,2:C)したときの1i日までの幸福度の合計の最大値
とします。
すると、
j=0のとき dp[i][j] = max(dp[i-1][1] + a_{i},dp[i-1][2] + a_{i})
j=1のとき dp[i][j] = max(dp[i-1][0] + a_{i},dp[i-1][2] + b_{i})
j=2のとき dp[i][j] = max(dp[i-1][0] + a_{i},dp[i-1][1] + c_{i})
となります。
あとは、これをもとに計算をし、dp[N][j]の最大値を選べば答えになります。