使用动态编程求解的资格

时间:2017-05-28 11:10:12

标签: algorithm dynamic-programming

对于使用dp解决的问题,我们是否需要通过问题满足最优子结构和重叠子问题,或者任何一个条件使其有资格使用dp技术求解?

如果问题P1具有最佳子结构但子问题不重叠,并且如果P2具有重叠的子结构但不满足最佳子结构,我仍然可以使用dp求解P1和P2吗?

1 个答案:

答案 0 :(得分:3)

这取决于一个问题,但似乎P1和P2都不适合动态编程:

  • P1 - 您可以使用DP,但不会获得任何性能改进,因为问题不会重叠,您无法重复使用解决方案。
  • P2 - 如果没有最佳子结构,那么解决子问题并不能帮助找到更大问题的解决方案。