【动态规划】

为什么要引进DP

在我们所做的很多题目中,贪心算法都是必不可少的。但是贪心的时间复杂度极高,很有可能会超时,所以我们就需要一种更快捷和简便的方法——DP。

什么是DP

DP全名动态规划,顾名思义,就是在动态中调整数据,主要核心是推导出状态转移方程,再通过循环的方式来将数据赋值给数组。

线性DP

数塔问题

请添加图片描述
请添加图片描述

贪心

本题如果运用贪心算法,就会在过程中出错,因为当前最佳解并不一定是全局最佳解。

DP

用DP的方法,就是枚举出每一个路径的数值,然后再求出最大值。但是,比较起暴力的方法的话,它并不是一味的枚举,而是通过一个状态转移方程来求。

从题面可知,每一个格子=左上角的格子+正上方的格子。
得出方程:a[i][j] = a[i - 1][j - 1] + a[i - 1][j];

再用两个循环求出答案即可

for(int i = 1; i <= n; i++){
	for(int j = 1; j <= n; j++{
		a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
	}
}

过程中求最大值;

for(int i = 1; i <= n; i++){
	for(int j = 1; j <= n; j++{
		a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
	}
}

区间DP

顾名思义,区间DP就是在寻找一个区间的状态转移方程,具体请看题

石子合并1

请添加图片描述

请添加图片描述

石子合并2

请添加图片描述
请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自八中的小鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值