专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
模4 最优路径问题
2019-04-13 14:54
发布
生成海报
站内文章
/
模拟电子
17961
0
1266
网址:http://www.bubuko.com/infodetail-7972.html
如下图:
从1到4找出一条路径,要求路径的总长度mod4的余数最小。
分析:
一条从1到4的最优路径,在它走到2或3时mod4的余数不一定最小。也就是说,最优策略的子策略不一定最优,所以本问题不满足最优化原理,那么也就不能用动态规划来解决。但是我们可以把它转化为判定性问题,用递推来解决。
设dp[k][i]为bool型数组,表示从1点到k点长度mod4为i的路径是否存在,设len[k][i]表示从第k-1到第k点之间的第i条边的长度。那么就有
显然边界条件是:
那么结果就是使
为真的最小的i的值。
上面的动态规划方程是有问题的。因为i-len[k][1]可能为负数,数组可能越界。
应该是:
。
为什么会是dp[k-1][ (sk-len[k][i]) % 4] 这个表达式呢。 其实
sk=(s(k-1) +len[k][i] )%4;
所以通过sk去求s(k-1)的时候 s(k-1) + len[k][i] =sk + 4*E (E为整数 0 或1) 所以 s(k-1) =( sk +4 *E - len[k][i])% 4
Ta的文章
更多
>>
检查堆栈溢出的实验
0 个评论
深入浅出理解linux inode结构【转】
0 个评论
模4 最优路径问题
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮