zoukankan      html  css  js  c++  java
  • uva1366 dp

    这题说的是给了 一个矩阵在每个单元内有BLOHHLUM 种的资源 Bi,j, 有YEYENUM 种的 资源Ai,j , 资 源 从 该 单 位 出 发 不能 转 弯 直 接 运 送 到 像 B 类 资 源 只 能 运送到 北部 不能转弯 相应的Y类资源也是一样的只能送到西部,有两种类型的传送带 南北方向和东西方向的南北方向只能运送B类 东西方向只能运送Y类,如下图

    epsfbox{p3530.eps}

    我们先假设 东西箭头为0状态 南北箭头为1 状态那么如果ij位置放0状态那么在第j列第i行后的必须为0状态要不就是0了 所以选0状态肯定是正确的,再由 i(j+1) 这个放哪个取最大值确定

    当ij取 1 状态的时候也是一样的 转移

    #include <iostream>
    #include <cstdio>
    #include <string.h>
    using namespace std;
    typedef long long ll;
    const int maxn =505;
    ll value[2][maxn][maxn];
    ll row[maxn][maxn];
    ll colum[maxn][maxn];
    ll dp[2][maxn][maxn];
    void inti(int n, int m){
         memset(dp,0,sizeof(dp));
         for(int i=0; i<n; ++i)
            for(int j=0; j<m; ++j)
             scanf("%lld",&value[0][i][j]);
         for(int i=0; i<n; ++i)
            for(int j=0; j<m; ++j)
             scanf("%lld",&value[1][i][j]);
         for(int i=0; i<n; ++i){
              row[i][m]=0;
              for(int j=m-1; j>=0; --j){
                 row[i][j]=row[i][j+1]+value[1][i][j];
              }
         }
         for(int i=0; i<m; ++i){
            colum[n][i]=0;
            for(int j=n-1; j>=0; --j){
                colum[j][i]=colum[j+1][i]+value[0][j][i];
               }
         }
    }
    int main()
    {
        int n,m;
        while(scanf("%d%d",&n,&m)==2&&n&&m){
              inti(n,m);
              for(int i=n-1; i>=0; --i){
                 for(int j=m-1; j>=0; --j){
                      dp[0][i][j]=colum[i][j]+max(dp[0][i][j+1],dp[1][i][j+1]);
                      dp[1][i][j]=row[i][j]+max(dp[0][i+1][j],dp[1][i+1][j]);
                 }
              }
              printf("%lld
    ",max(dp[0][0][0],dp[1][0][0]));
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Git的分支的clone、提交及删除
    Linux查找整个目录下包含关键词的文件并全局替换文件内容
    解决Mysql group_concat长度限制
    SQLSERVER建立MYSQL连接服务器
    批处理创建文件夹
    表分区常用脚本
    添加别名的重要性
    floor相关
    T-SQL 小数点转换百分数
    开启MSDTC
  • 原文地址:https://www.cnblogs.com/Opaser/p/4065792.html
Copyright © 2011-2022 走看看