这一节主要讲了dp的基本概念和基本的做题思路
DP是一种可以减少计算冗余量来求到最优解的思想
对于一个问题,看其能不能用dp来解决要看其能不能满足无后效性和最优化原理.
对于状态为s.f(s)表示该状态下的最优解
所谓无后效性就是对于当前状态s,我们的策略只取决于s本身的特征因素,和如何到达s无关。
最优化原理就是说对于两个状态s,t,t由s转移而来,则f(t)满足f(t) = f(s) + w(s,t)
通过无后效性我们可以得到状态转移时可采取的策略,写出转移方程,而最优化原理则保证了方程的正确性。
在用dp解决问题是,我们首先要选取好的状态描述方法,使其能满足无后效性和最优化理论。
要考虑决策时会依赖那些变量。我们的状态正是有这些变量组成。
有了状态的描述还要考虑dp值的含义,一般有两种
1.dp(s) 表示从起始状态到s能得到的最优解(向前递推)
2.dp(s) 表示从s到终止状态能得到的最优解(向后递推)
我做题时一般选第一种,但是对于某些问题,第二种会更易于解决问题。所以还到时候还是看向那个方向推更方便吧。
下面是1.5.1例题和网上oj的对应情况
括号序列 poj 1141
棋盘分割 poj 1191
决斗 nyoj 110
“舞蹈家”怀特先生 BNUOJ 8207
积木游戏 ecnuoj 1244
DP是一种可以减少计算冗余量来求到最优解的思想
对于一个问题,看其能不能用dp来解决要看其能不能满足无后效性和最优化原理.
对于状态为s.f(s)表示该状态下的最优解
所谓无后效性就是对于当前状态s,我们的策略只取决于s本身的特征因素,和如何到达s无关。
最优化原理就是说对于两个状态s,t,t由s转移而来,则f(t)满足f(t) = f(s) + w(s,t)
通过无后效性我们可以得到状态转移时可采取的策略,写出转移方程,而最优化原理则保证了方程的正确性。
在用dp解决问题是,我们首先要选取好的状态描述方法,使其能满足无后效性和最优化理论。
要考虑决策时会依赖那些变量。我们的状态正是有这些变量组成。
有了状态的描述还要考虑dp值的含义,一般有两种
1.dp(s) 表示从起始状态到s能得到的最优解(向前递推)
2.dp(s) 表示从s到终止状态能得到的最优解(向后递推)
我做题时一般选第一种,但是对于某些问题,第二种会更易于解决问题。所以还到时候还是看向那个方向推更方便吧。
下面是1.5.1例题和网上oj的对应情况
括号序列 poj 1141
棋盘分割 poj 1191
决斗 nyoj 110
“舞蹈家”怀特先生 BNUOJ 8207
积木游戏 ecnuoj 1244