动态规划-方格取数思考解题方式

方格取数
给出N*N的方格图,方格中填入某些正整数,某些是0。
让你从左上角出发,走到右下角。
两种方式:可以向下,向右走。
问你走两次,找出两条路径,使得的数字和最大。

解题:
思考之前的题目是走一次,类似题目摘花生和最低通行费。

对于这个新的问题,我们先以以前的思考来类别
摘花生
f[i][j] 表示从(1,1)到(n,n)的路径的最大值
f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j];
需要注意的是这个是取一次

状态表示

对于目前这个题目,首先走两次,那么路线可能会有重复点。
走两次:
f[i1,j1][i2,j2] 表示所有从(1,1)(1,1)分别走到(i1,j1)(i2,j2)的路径最大值

如何处理”同一个格子不能被重复选择“
我们可以考虑到,只有i1+j1 == i2+j2时两条路径的格子才可以重和。
同时走,只有相等的时候才会在同一个格子里。

这个我们要想不重复,那么我们可以考虑一边走一边标记,或者说两个同时走,
对于DP上,我们可以考虑两个同时走的情况。
假如,f[k,i1,i2] 表示所有从 分别走到(i1,k-i1)(i2,k-i2)的路径的最大值。

k 表示两条路线当前走到的格子的横纵坐标之和
k=i1+j1 =i2+j2
状态计算

关于这个
第一条 下 第一条 下 第一条:右 第一条:右
第二条 下 第二条 右 第二条:下 第二条:右

全部评论

相关推荐

09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
迷茫的大四🐶:都收获五个了,兄弟那还说啥,不用改了,去玩吧
点赞 评论 收藏
分享
10-29 22:30
吉林大学 Java
同专业学长学姐,去互联网大厂的起薪 15k+,去国企 IT 岗的也有 12k+,就连去中小厂的都基本 13k 起步😤 我投的传统行业技术岗,拼死拼活拿到 1Woffer,本来还挺开心,结果逛了圈牛客直接破防,同是校招生,行业差距怎么就这么大啊!
喵喵喵6_6:应该哪里不对吧,大厂都是20k以上的,10k那种对于985本的学生基本就是点击一下过了笔试就送的,我前两天刚拿了一个11k,笔试完第2天就打电话了,非科班。坏消息是c++岗开这么低真是刷新认知了
校招生月薪1W算什么水平
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务