【动态规划】动态规划的循环顺序问题

本文探讨了动态规划中的循环顺序问题,通过举例分析P1644跳马问题,强调了状态转移的方向性,即从前面的状态推出后面的状态。同时,解释了在求解从(0,0)到(n,m)路径时,外层循环顺序的影响,建议将循环顺序调整为先扫完最近的一行再扫下一列以避免无值状态。最后,分享了一道关于工作分配的dp题目,解析了如何计算f[i][j]表示前i个工作由第j小组完成的最小时间。" 55222929,5850352,Caffe依赖包详解,"['Caffe', '深度学习', '计算机视觉', '数据处理', '数值计算', '日志管理']
摘要由CSDN通过智能技术生成

例题:P1644 跳马问题

具体要看f[i][j]先从哪个状态转移过来的

比如,这个马,(都知道走“日”字),题中限制只能向右走。要向右走,依据动态的核心思想是从前面的状态推出后面的状态(与dfs相反),可知,dx[],dy[]要反向开,从后面找到前面已经转移过的进行递推。

再就是循环顺序问题:

从(0,0)点走到(n,m)点,如果外层循环是行,一行没走完,列都已经循环过了。

把循环顺序交换后,可以看做,先把最近的一行扫完了,再去扫下一列,下一列就有值了,否则,就是无值状态。

也可以吧值都输出出来,就可以轻松得发现循环顺序关系

例子:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值