首页 > 其他 > 详细

2016郑州轻工业学院校赛 B 蛤玮的财宝

时间:2016-04-18 15:00:19      阅读:148      评论:0      收藏:0      [点我收藏+]

比赛时没写出来,结束后听ccx学长讲,才知道有多线程DP,感觉自己菜成dog,之前就没听过,还是太弱。

#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <stack>
using namespace std;

int dp[222][111][111];
int a[111][111];

#define max4(a,b,c,d) max(max(a,b),max(c,d))

int main()
{
    int t, n, m;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d", &n, &m);
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=m; j++)
            scanf("%d", &a[i][j]);
        }
        memset(dp, 0, sizeof(dp));
        dp[0][1][1] = a[1][1];
        for(int k=1; k<=n+m-2; k++)
        {
            for(int i=1; i<=k+1; i++)
            {
                for(int j=1; j<=k+1; j++)
                {
                    dp[k][i][j] = max4(dp[k-1][i][j], dp[k-1][i-1][j], dp[k-1][i][j-1], dp[k-1][i-1][j-1]);
                    if(i!=j)
                        dp[k][i][j]+=a[i][k+2-i]+a[j][k+2-j];
                    else
                        dp[k][i][j]+=a[i][k+2-i];
                }
            }
        }
        printf("%d\n", dp[n+m-2][n][n]);
    }

    return 0;
}

 

2016郑州轻工业学院校赛 B 蛤玮的财宝

原文:http://www.cnblogs.com/mengzhong/p/5404123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!