DP刷题总结-2
同步于Luogu blog
T1 AT_joisc2007_buildi ビルの飾り付け (Building)
简化题意
最长上升子序列模板
分析
做法
考虑DP
- 定义状态:
表示以 结尾的最长上升子序列长度 - 确定答案:
- 状态转移:对于每个
:
(1)当 从以第 个数结尾的地方再接一个数,即
(2)自己单独成一个子序列 - 边界条件:
(每个数都能单独成一个子序列)
做法
考虑贪心(往死里贪)
所以对于最大上升子序列,结尾元素越小,越有利于后面接上其他的数,也就可能变得更长
所以创建一个数组
对于每个
但是这样可能还是要扫一遍
P.S.:
Code
T2 AT_abc281_d [ABC281D] Max Multiple
分析
- 定义状态:
表示前 个数,选了 个,余数为 时的最大和 - 答案:
,否则为 - 方程:
(1)不选这个数:
(2)选这个数: - 边界:
,
Code
T3 AT_abc369_d [ABC369D] Bonus EXP
题意简化
有
- 放走他,获得
经验 - 击败他,获得
经验,特别的,如果这只怪兽是你击败的偶数只怪物,你还可以额外获得 经验
求最后你能获得多少经验
分析
- 定义状态:
表示前 个怪物,选了奇数/偶数个怪物的最大经验 - 答案
- 状态转移方程:
(1)选第 个怪物,且为奇数个:
(2)选第 个怪物: - 边界:由于
可能有负数,所以dp设为负无穷
Code
还有两题有时间补上
本人(KK_SpongeBob)蒟蒻,写不出好文章,但转载请注明原文链接:https://www.cnblogs.com/OIer-QAQ/p/18580147/KO_problem_two
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体