线性动态规划理论
不多bb,上大佬解释
总结:理解动态规划不需要数学知识介入
思想简述
动态规划的思想核心在于从下到上找到每一个子问题的最优,递推实现时保存每一个子问题的最优计算结果(避免了递归回溯算法对子问题的重复计算,提高了效率),不管其是否会被用到。
注:逻辑上不同于递推的是,递推求出的是数据,所以只是针对数据进行操作;而动态规划求出的是最优状态,所以必然也是针对状态的操作,而状态自然可以出现在最优解中,也可以不出现。
一.生活中的示例
问题:给出商品价格,用最少的钞票来支付要买的商品
通常情况下,我们会尽量最大的面值的纸币开始支付,以下部分是部分代码模拟
int a[6] = {
100,50,20,10,5,1};
int n,sum=0;//sum存储结果
scanf("%d",&n);//n为商品价格
for(int i=0;i<6;i++)
{
sum += n/a[i];
n %= a[i];