各种DP的总结
By SemiWaker
定义s
为了防止表述不清
哪些算DP?有选择的递推。
但是很多叫做DP的东西其实就是递推,所以不做区分。DP要做什么?
求目标函数的最值。怎么做?
划分阶段,每个阶段进行满足最优子结构的决策。
换句话说,记忆化搜索,正过来做看起来就是DP
难求的目标函数
目标:把难求的目标函数转换为易求的。
平均数
设 a¯ 是 ai 数列的平均数。
现在要选一些 ai 使得 a¯ 最大。
选 ai 的规则具体根据题目,下同。
由 a¯=∑ain
把n取出,枚举n(或者题目规定了n),变为求 ai 的和最大。
特定情况下n可以二分,因为n越小越好。(最优情况下平均数肯定只选最大的一个数,但是题目肯定有限制。)方差
求max∑i=1n(ai−a¯)2
通常会知道n。
方法:
1、枚举总和。设总和为S,总和一定的时候, a¯ 也一定,把 a¯ 当成常数去做DP即可。这种情况下,总和S不用作为状态,因为选出来的 ai 总和不必一定为S。由 (ai−a¯)2<(ai+x−a