最近在洛谷上刷atc的动态规划而特此写的有一篇题解,希望有错误能得到大佬们的指点!
题目链接:Vacation - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目大意(摘自洛谷翻译):
太郎的暑假有n天,第i天他可以选择做以下三种事情:
- 游泳,获得ai点幸福值。
- 捉虫,获得bi点幸福值。
- 写作业,获得ci点幸福值。
但他不能连续两天进行同一种活动,请求出最多可以获得多少幸福值
由此题可知每一天只能做一种活动,因此我们列状态转移方程时转移的状态还要包括时间与进行哪些活动,即:
其中表示前i天且第i天进行第j个活动的最大值,由于连续两天不相同,我们可以枚举今天与前一天进行了哪些活动进行状态转移,最后记录这些状态的最大值,时间复杂度