P1130 红牌

思路如下

这一题很像数字金字塔,我们可以正着求最小时间,当然也可以逆着求最小时间,

  1. 如果正着求:那么我们怎么求状态转移方程呢?,在这里我们假定状态转移方程为:dp[ i ][ j ] ,i 表示第i行,j表示第j列,dp[ i ][ j ] 则表示从开始点(第一个步)到(i , j)这个位置所需要的最小的时间。当j > 1 && i > 1 的时候,我们考虑(i, j)这个位置是有那个位置转换过来的显然是由(i , j - 1)、(i - 1 , j)两个点走过来的,到底是着这两个点中的哪个点呢?,在这里我们直接通过min函数进行选择就行了,至此还有一些细节需要注意,当 i 表示是最第一行的时候我们要特殊考虑这一行的点是由哪些点转化过来的。
  2. 如果我们逆着求:其实思路跟正着求解差不多,只不过是逆着求解这个问题而已,那么我们仍然做假设dp[ i ][ j ] ,i 表示第i行,j表示第j列,dp[ i ][ j ] 则表示从(i , j)这个位置到终点(最后一步)所需要的最小的时间。这里当 i > 1 && i <M && j >= 1 && j < N 的时候,我们考虑dp[ i ][ j ] 是由那个状态转移而来,我们可以先考虑(i , j)这个点是经过“下一步”操作可以变成(i , j. + 1)、(i + 1 , j + 1)这两个点,由于是逆向思考,所以dp[ i ][ j ] 这个点的最优值是从dp[ i ][j + 1] 、 dp[i + 1][j + 1] 这两个

    P1130 红牌(动态规划)的更多相关文章

    1. 洛谷 P1130 红牌

      P1130 红牌 题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程 ...

    2. 洛谷P1130 红牌

      题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程,每一步政府都派了 ...

    3. P1130 红牌

      题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括NN个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程,每一步政府都派 ...

    4. 洛谷——P1130 红牌

      题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程,每一步政府都派了 ...

    5. 洛谷P1130红牌(简单DP)

      题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括NNN个步骤.每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件.为了加快进程,每一步政府都 ...

    6. 题解 P1130 【红牌】

      逆推dp经典题目:数字三角形的折叠版 为什么这么说? 因为我们会发现:除了每一次都特判一下是否转换行号以外,剩下的思想没什么不同. 没看题目的看这里 先定义: n,m是步骤数目,小组数目 work[i ...

    7. Luogu【P1130】红牌(DP)

      欧拉 本蒟蒻第一个自己想出来的DP题 请移步题目链接 调了半天.i从1到n,j从1到m. f[i][j]表示的是第i道工序在第j个小组办完所花的最短时间. 因为要用到上一个状态,而上一个状态要么是同一 ...

    8. 【u120】红牌

      Time Limit: 1 second Memory Limit: 128 MB [问题描述] 某地临时居民想获得长期居住权就必须申请拿到红牌.获得红牌的过程是相当复杂 ,一共包括N个步骤.每一步骤 ...

    9. 增强学习(三)----- MDP的动态规划解法

      上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的 ...

    随机推荐

    1. arm 添加 samb 文件共享

      编译环境: ubunto 12 arm-linux-gcc 4.3.2 arm linux 4.1.36 开发板 2440 测试上传速度,大文件 github源码 https://github.com ...

    2. Git的使用流程及常用命令汇总

      Git是一个很好用的版本控制系统,本文对于常用的一些命令进行了汇总. 创建一个存储仓库(repository) https://github.com/右上角点击"+"号,New r ...

    3. Golang中database/sql包

      驱动 github.com/go-sql-driver/mysql 请求一个连接的函数有好几种,执行完毕处理连接的方式稍有差别,大致如下: db.Ping() 调用完毕后会马上把连接返回给连接池. d ...

    4. Python只有文件不存在才能写文件

      当我们在Python里面写文件时,我们常用的模式为 w模式,这种模式下,如果文件不存在,就会生成文件:如果文件已经存在,就会直接覆盖. 有时候,如果文件已经存在,直接覆盖文件可能会导致重要数据丢失.你 ...

    5. 【简说Python WEB】Flask-Moment

      目录 [简说Python WEB]Flask-Moment 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6 ...

    6. 返回运行方法,可以写在一行 callback&&callback()

      return DiscountMap[discountType] && DiscountMap[discountType](price)

    7. 视频 embed标签动态改变Src的值,局部刷新播放其他视频的javascript方法

      看图: 视频处html代码: <div id="mod_player" class="mod_player"> <embed id=" ...

    8. Asp.Net Core 3.1 获取不到Post、Put请求的内容 System.NotSupportedException Specified method is not supported

      # 问题 是这样的,我.net core 2.1的项目,读取.获取Post请求内容的一段代码,大概这样: [HttpPost] public async Task<IActionResult& ...

    9. 你不一定知道的UrlPrefix路由规则

      引言 接上文,容器内web程序一般会绑定到http://0.0.0.0:{某监听端口}或http://+:{某监听端口},以确保使用容器IP可以访问到web应用. 正如我们在ASP.NET Core官 ...

    10. python基础--深浅拷贝copy

      拷贝是音译的词,其实他是从copy这个英文单词音译过来的,那什么是copy? copy其实就是复制一份,也就是所谓的抄一份.深浅copy其实就是完全复制一份,和部分复制一份的意思. 1.赋值运算 l1 ...