zoukankan      html  css  js  c++  java
  • 矩阵最优路线DP

    母题:矩阵中每个点有权值,每经过一个点就累加权值,求从a点到b点的最优(最大)路线。

    题型1:

    从左上到右下,只能向下或者向右

    for 行

      for 列

        dp=max dp左,dp上;

    扫一遍就行

    有时可能会是bfs+记忆化搜索,仔细看题

    题型2:

    从左上到右上,只能向下、上、右,不能走重复的点。

    这种题一定要单独求解每一列从左、上转移和从左、下转移的dp,最后求最大值(如果不单独求解,就会出现走重复点的情况,理解一下状态转移的概念就明白了)。

            for(int j=2;j<=n;j++)
                dp[j][1]+=dp[j-1][1];
            for(int j=2;j<=m;j++)
            {
                int temp[105];
                for(int i=0;i<=n+1;i++)
                    temp[i]=-INF;
                for(int i=1;i<=n;i++)
                    temp[i]=dp[i][j];
                for(int i=n;i>=1;i--)
                    temp[i]+=Max(dp[i][j-1],temp[i+1]);
                for(int i=1;i<=n;i++)
                    dp[i][j]+=Max(dp[i-1][j],dp[i][j-1]);
                for(int i=1;i<=n;i++)
                    dp[i][j]=Max(dp[i][j],temp[i]);
            }

    //TODO

  • 相关阅读:
    B
    R
    C
    B
    异步解决方案----Promise与Await
    NPM 与 Nodejs
    借助node.js + mysql 学习基础ajax~
    bind、call、apply的区别与实现原理
    私有 npm 仓库的搭建
    学习 Promise,掌握未来世界 JS 异步编程基础
  • 原文地址:https://www.cnblogs.com/LukeStepByStep/p/6011400.html
Copyright © 2011-2022 走看看