acm3

初学动态规划
知识部分

(1) 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。 (2) 无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。
初始状态→│决策1│→│决策2│→…→│决策n│→结束状态 图1 动态规划决策过程示意图
(1)分析最优解的性质,并刻画其结构特征。 (2)递归的定义最优解。 (3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出最优值 (4)根据计算最优值时得到的信息,构造问题的最优解

我的理解

有关动态规划,分段求最优解是一个重点。

-《基本构成》 分段最优

  • 用变量描述状态
  • 决策
  • 状态转移方程
    -( 状态转移方程说白了就是从这一阶段到下一阶段的演变规律)
    《使用》
    需要数组赋予含义
    可以用枚举的方法
    把数组赋予含义去完成一个个最优子问题的思路是重点,要理解。
    方法有搜索。记忆化搜索。顺推,逆推。
    if(n == 0){
	return 0;
    }else if(n == 1){
	return 1;
    }else{
	return solutionFibonacci(n-1)+solutionFibonacci(n-2);
    }
public static int solutionFibonacci(int n){
		if(n==0){
			return 0;
		}else if(n == 1){
			return 1;
		}else{
			int result[] = new int[n+1];
			result[0] = 0;
			result[1] = 1;
			for(int i=2;i<=n;i++){
				result[i] = result[i-1] + result[i-2];
			}
			return result[n];
		}
```以上是斐波那契额的一个例子

从中可以看到
在递归的动态理解中用一个数组来保存
 和金币的那个题有类似之处
 但是金币题目在数学的角度上只能右下移动
 所以右下递交处的金币最多从1.1到i,j金币数不会超过i+j
 所以动态规划还是有一点贪心的意思
 对了,如果问题没法分段优化,就不能用动态规划了。递归和贪心或许是更好的选择。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值