双向dp题目

Mzx0821月赛系列之情书(1084)

Time limit(ms): 1000
Memory limit(kb): 65535
Submission: 76
Accepted: 19
Didn't trying

小时候,Mzx0821暗恋班上的一个妹子Zzx。


    一次班上做活动,班上同学被安排坐成m行n列的矩阵,Mzx0821坐在坐标(x1,y1)的位置,Zzx坐在坐标(x2,y2)的位置。活动过程中,Mzx0821写了一张纸条想给Zzx,但是Mzx0821又不想班上其他人看到他写的内容,于是Mzx0821给班上每个人定义了一个保密程度值(就是这个人不偷看纸条内容的可能),每个人传递纸条只能给前后左右的人。


    Mzx0821还考虑到万一Zzx给Mzx0821回纸条怎么办呢,为了保密,Mzx0821希望每个人最多传递一次纸条,就是说一个人在Mzx0821传给Zzx的时候帮了忙,就不能再帮Zzx传给Mzx0821,反之亦然。


    Mzx0821希望找到这样两条路,使得来回两条路上的保密程度值的和最大,为了尽快传到,这两条路必须是Mzx0821到Zzx的之间的最短路。


    Mzx0821智商实在捉急,于是向机智的学弟学妹们求助,你能帮助他找到正确的路线吗?

Description

输入第一行有2个用空格隔开的整数m和n,表示班里有m行n列(1<=m,n<=50)。


为了简化问题我们假设Mzx0821坐在左上角,Zzx坐在右下角。


接下来的m行是一个m*n的矩阵,矩阵中第i行j列的整数表示坐在第i行j列的学生的保密程度。每行的n个整数之间用空格隔开。


友情提示:Mzx0821坐标点的值和Zzx坐标点的值为0,坐标点的值<10000。

Input

输出共一行,包含一个整数,表示来回两条路上参与传递纸条的学生的保密程度之和的最大值。

Output
1
2
3
4
5
3 3
0 3 9
2 8 5
5 7 0
Sample Input
1
34
Sample Output


简述:这道题的意思就是求从图的左上角到图的右下角走一个来回能得到的最高保密值,且去和回不能走相同的点,也就是说每一个点只能走一次。也可以想成是捡宝藏捡最大价值。


思路:如果是只去不回的话肯定dp就直接搞定了,

你可能感兴趣的:(acm/算法)