02 坐标型动态规划

坐标型动态规划,顾名思义,此类动态规划与坐标位置有很大的关系。
它的状态划分与维数有关。如用二维坐标系f[i,j]表示状态,它的值一般代表x坐标为i,y坐标为j时的最佳值,它与(i-1,j)或(i,j-1)的值有很大关系,一般采用递推方法来实现。

一、计算所有方案:

f[i][j]=f[i-1][j]+f[i][j-1]             【例题】过河卒

二、计算一条最佳路径:

f[i][j]=min(f[i-1][j],f[i][j-1])+a[i][j]          【例题】数字金字塔

【例1】拾垃圾的机器人

【问题描述】在一个n*m的棋盘内,一些格子里有垃圾要拾捡。现在有一个能捡垃圾的机器人从左上格子里出发,每次只能向右或者向下走。每次他到达一个点,就会自动把这个点内的垃圾拾掉。最多能拾多少垃圾。在最多的情况下,有多少种拾垃圾方案?
【数据范围】n<=100,m<=100
【文件输入】
3 3
100
000
010
【文件输出】
2
3

【核心代码】
状态:p[i][j]表示走到(i,j)这个位置时,最多可拾到的垃圾数
状态:q[i][j]表示走到(i,j)这个位置时,在拾到的垃圾数最多情况下的方案数

p[i][j]=x-'0';
p[i][j]+=max(p[i-1][j],p[i][j-1]);
if(a[i-1][j]<a[i][j-1]) q[i][j]+=q[i][j-1];
else if(p[i-1][j]>p[i][j-1]) q[i][j]+=q[i-1][j];
else q[i][j]+=q[i-1][j]+q[i][j-1];

【例2】方格取数

Description
给定一个 N * M 的矩阵 , 记录左上角为 (1,1) , 右下角为 ( N , M ) , 现在从 (1,1)始

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值