《算法学习笔记》codeforces周总结——动态规划

《算法学习笔记》codeforces周总结——动态规划

需要吐槽的是,cf上难度区间在1000至1300的题目最优解不是dp而是一般的贪心,虽然是怎么说,但是也并不意味着用dp就不能得出答案,只是自己比较菜用dp得不出正确的方案而已……

不过,这也说明了dp和贪心是有相似之处的,一些时候,“局部最优”的贪心策略就完全足以应对问题了,而不需要使用动态规划(因为如果想要通过使用dp来正确地解答问题,就必须将dp中的“五个部分”都设计正确)。

那么以后遇到这一类问题我们究竟使用哪种方略呢?这虽然没有定数,但是我们依然可以总结出一些规律,在之后的解题过程中为自己再开一条思路:

  1. 贪心的思维很简单,抓住问题当中核心的、可控的量,进行局部最优的推理,接着进行测试。
  2. 动态规划总能解决贪心不能解决的问题,但是首先必须做好问题的抽象——这是得出状态转移方程的关键(常见的模型有背包,选与不选,等等),如何初始化,如何遍历都必须要考虑周全,难度是比较大的。当贪心的方法不能解决问题时,我们就尝试将dp当做第二个方案。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注