zoukankan      html  css  js  c++  java
  • Codeforces Round #245 (Div. 1)——Working out

    题目链接

    • 题意:
      一个n*m的矩阵,每一个方格有一个非负数,如今选择两条线路:一个左上到右下,一个左下到右上,且仅仅能有一个公共点。

      求两个线路上数的最大值(公共点不算)

    • 分析:
      仅仅有两种情况,dp就可以。

      记两个线路为1和2。考虑一个公共点。1为左进右出。2为下进上出。1上进下出,2为左进右出

    const int MAXN = 1005;
    
    int lu[MAXN][MAXN], ld[MAXN][MAXN];
    int ru[MAXN][MAXN], rd[MAXN][MAXN];
    int ipt[MAXN][MAXN];
    int n, m;
    
    int main()
    {
    //    freopen("in.txt", "r", stdin);
        while (~RII(n, m))
        {
            CLR(ipt, -1);
            FE(i, 1, n) FE(j, 1, m) RI(ipt[i][j]);
            lu[1][1] = ipt[1][1];
            ru[1][m] = ipt[1][m];
            ld[n][1] = ipt[n][1];
            rd[n][m] = ipt[n][m];
    
            FE(i, 1, n) FE(j, 1, m)
            {
                lu[i][j + 1] = max(lu[i][j + 1], lu[i][j] + ipt[i][j + 1]);
    			lu[i + 1][j] = max(lu[i + 1][j], lu[i][j] + ipt[i + 1][j]);
            }
            FE(i, 1, n) FED(j, m, 1)
            {
                ru[i][j - 1] = max(ru[i][j - 1], ru[i][j] + ipt[i][j - 1]);
    			ru[i + 1][j] = max(ru[i + 1][j], ru[i][j] + ipt[i + 1][j]);
            }
            FED(i, n, 1) FE(j, 1, m)
            {
                ld[i][j + 1] = max(ld[i][j + 1], ld[i][j] + ipt[i][j + 1]);
    			ld[i - 1][j] = max(ld[i - 1][j], ld[i][j] + ipt[i - 1][j]);
            }
            FED(i, n, 1) FED(j, m, 1)
            {
                rd[i][j - 1] = max(rd[i][j - 1], rd[i][j] + ipt[i][j - 1]);
    			rd[i - 1][j] = max(rd[i - 1][j], rd[i][j] + ipt[i - 1][j]);
            }
            int ans = 0;
            FE(i, 1, n) FE(j, 1, m)
            {
                if (i - 1 >= 1 && j - 1 >= 1 && i + 1 <= n && j + 1 <= m)
                {
                    ans = max(ans, lu[i - 1][j] + ld[i][j - 1] + rd[i + 1][j] + ru[i][j + 1]);
                }
                if (j - 1 >= 1 && i + 1 <= n && j + 1 <= m && i - 1 >= 1)
                {
                    ans = max(ans, lu[i][j - 1] + ld[i + 1][j] + rd[i][j + 1] + ru[i - 1][j]);
                }
            }
            WI(ans);
        }
        return 0;
    }
    


  • 相关阅读:
    IE7下元素的 'paddingtop' 遇到 'clear' 特性在某些情况下复制到 'paddingbottom'
    Foundation HTML5 Canvas中的2处错误
    近期学习技术安排
    2011年工作总结和展望(上篇)
    详解ObjectiveC消息传递机制
    ObjectiveC 2.0的运行时编程消息转发
    c# Pdf 转换图片
    c语言指针用法难点
    C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
    ObjectiveC中什么是类
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5221634.html
Copyright © 2011-2022 走看看