动态规划
FlushHip
凝视深渊
展开
-
简单递推 - 动态规划 - LightOJ - 1004 - Monkey Banana Problem
题目链接:[点这儿].题意: 一个菱形地图,每个格子有数字,问你从最上面一个格子走到最下面一个格子经过的数字加起来最大是多少,向下走的时候只能走下面相邻的两个格子.解析: 简单的递推型动态规划,状态转移方程为:dpi,j=arri,j+{max(j<arri−1.size?dpi−1,j:0,j−1<0?0:dpi−1,j−1)max(dpi−1,j,dpi−1,j+1)i<ni>原创 2017-11-01 13:06:52 · 823 阅读 · 0 评论 -
简单递推 - 动态规划 - LightOJ - 1005 - Rooks
题目链接:[点这儿].题意: 一个棋盘,每个格子可以放一个棋子,放了棋子的这一行和这一列就不能再放其他棋子了,问你对于规模为n的棋盘,上面放k颗棋子有多少种放法.其中1<=n<=30,0<=k<=n21<=n<=30,0<=k<=n^2.解析: 首先,这个题组合放法可以做,而且比较简单,待会会给出,现在我们说说动态规划的做法. 这是一个简单递推动态规划,定义dp[i][j原创 2017-11-01 16:25:47 · 714 阅读 · 0 评论 -
状态压缩 - 动态规划 - LightOJ - 1011 - Marriage Ceremonies
题目链接:[点这儿].题意: 在一个n X n的矩阵中,选择n个数,这n个数所在的行列各不相同,求出这n个数的最大和.n<=16n<=16.解析: 看到这个题第一想法就是用KM算法做,能用KM算法做,那么就一定能用最小费用最大流做,这里不讨论这两种做法,讨论下动态规划的做法. 首先,这是个状态压缩动态规划的裸题,这里如果用搜索去做,会超时,而且会爆内存空间,因此,得把状态压缩到一原创 2017-11-02 18:21:37 · 369 阅读 · 0 评论 -
简单递推 - 动态规划 - 百度2016研发工程师编程题 - 蘑菇阵
题目链接:[点这儿].题目: 现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?解析: 如原创 2017-11-03 01:57:14 · 572 阅读 · 0 评论 -
期望概率 - LightOJ - 1027 - A Dangerous Maze
题目链接:[点这儿].题意: 你在一个迷宫里,迷宫里有n扇门,每扇门有且只有下面两种功能之一: 花费x分钟逃出迷宫; 花费x分钟回到原来的位置. 你选着任意一扇门的概率相等,问你逃出迷宫的时间的期望.解析: 这个题的关键是把能逃出迷宫的门合并起来,把回到原位置的门合并起来,这样每次选择就变成了一个0-1分布,然后列式子化简。 设逃出迷宫的门(已原创 2017-11-21 00:33:01 · 547 阅读 · 0 评论 -
简单递推 - 动态规划 - LightOJ - 1122 - Digit Count
题目链接:[点这儿].题意: 给你一个1-9的数字集合,要你从中挑选出n的数字,构成n位数,数字可重复挑选,构成的n位数要满足一个条件: 任意相邻的两个数字之差的绝对值要小于等于2. 问你有多少种构造方式. 解析: 很明显的线性动态规划,首先第i位数字的状态可以根据第i-1位数字的状态转移过来; 设dp[i][j]表示第前i位且最后一位为j的构造原创 2017-11-21 14:19:26 · 422 阅读 · 0 评论