首页 > 百科信息 > 什么是DP?

什么是DP?

来源:查看原文

DP是分治法(Divide and Conquer)的一种典型应用。DP与分治法都是将问题分成若干个子问题,然则它们的差异点在于,DP子问题之间尚有相互依赖的关系。

DP的基本头脑是先以最简朴、最基本、最小的问题为切入点,只思量一个子问题,尔后将此子问题的结果存储下来供以后的求解,同时对此问题举行递推,直到所求问题的规模到达最初规模的结果为止。

DP的寻找最优子结构性子,中途可以镌汰次优解。这种方式一样平常从问题的最后一步推到第一步,从简朴的子问题出发,通过子问题的最优解逐步迫近原问题的最优解,找到全局最优解。

DP不仅可以用来求最大和最小值,而且可以用来求方案数等结果。DP适用的问题的特点是:求一个问题的最优解,整体最优解可以由局部最优解推导出来,而且子问题重复泛起,有助于剪枝。

在算法竞赛领域,DP常被作为最后的破解武器,有时刻卡在一道题上,可能只是由于没有想到用DP来做。

相关信息