DP
leon_pythonic
这个作者很懒,什么都没留下…
展开
-
Hdu 1087 Super Jumping! Jumping! Jumping!
Hdu 1087 DP原创 2016-04-20 10:15:56 · 478 阅读 · 0 评论 -
hdu 2571 命运
这题的题意为给出一个二维矩阵,每个二维矩阵有一个对应的值.主人公初始点为(1,1,),终点为(N,M).移动策略为(x+1,y)或(x,y+1)或(x,y*k);经过一个点的时候,则自动获取该点的值,求到达终点能得到的最大值. 我的解法为DP,如果有其他解法,欢迎留言. 状态转移方程: dp[i][j] = max(dp[i-1][j],dp[i][j-1],dp[i][k]),其中k为j的约数原创 2016-04-20 11:23:54 · 396 阅读 · 0 评论 -
hdu 2084 数塔
问题的描述大意为 : 给出一个二维数组,每个位置具有一个值,要求从顶层走到底层,路过一个点则获取相对应的值,期望到达底层能够获得最大值. 解析: 显然,过程可逆.即如果从顶层走到底层最大,则从底层走到顶层也必定最大.所以,要想在顶点处获得最大值,则应当选取顶点的下一层的最大值.要获取顶点下一层的最大值,则需要获取顶点下面第二层的最大值,如此反复直到底层. 行走策略 : dp[i][j] = ma原创 2016-04-21 23:43:01 · 319 阅读 · 0 评论 -
hdu 1176 免费馅饼
这题的题意是: 给出11个点,然后给出 位置和时间 的Pair序列代表每个时刻每个点会掉落一个馅饼(可重复).注意这里并没有说时间是有序的..所以用一个二维数组对馅饼的掉落时间和掉落位置进行存储. 移动策略 : dp[i][j] = max(dp[i+1][j+1],dp[i][j+1],dp[i-1][j+1]) + a[i][j]; 其中a[i][j]代表对应时刻和位置的馅饼数量.j代原创 2016-04-21 23:27:26 · 358 阅读 · 0 评论 -
hdu 1024 Max Sum
这题的题意为: 给出一个一维数组,让你确定连续的子序列的最大和及其开始点和结束点的位置.子序列即从原序列中取任意数量的数组成的序列. 行走策略 : dp[i]代表序号最大为i的子序列的最大和. if(dp[i-1] >= 0) dp[i] = dp[i-1] + a[i] ; else dp[i] = a[i]; 若dp[i] < 0,则说明此前的和对之后的最大和没有意义.应当给其赋予一个新原创 2016-04-23 00:34:16 · 337 阅读 · 0 评论 -
hdu 1231 最大连续子序列
这题的题意为: 给出一个一维数组,让你确定连续的子序列的最大和及其开始点和结束点的所对应的值.子序列即从原序列中取任意数量的数组成的序列. 这题与1024题是一样的思路,仅有一些细微的差别而已,应当注意到这些细节. 行走策略 : dp[i]代表序号最大为i的子序列的最大和. if(dp[i-1] >= 0) dp[i] = dp[i-1] + a[i] ; else dp[i] = a[i];原创 2016-04-23 00:36:58 · 333 阅读 · 0 评论 -
关于计数 dp 中 n 的 m 划分的理解
问题表述 有n个无区别的物品,将它们划分为不超过m组,求出划分方法数模M的余数。我们将这种划分记为 n 的 m 划分. 这道题是挑战编程竞赛中 dp 专题里面的一道题, 上课的时候看了半天一直没明白为什么状态转移方程的推导是那个样子的. 回到实验室的时候看着别人的文章突然想明白了, 所以在这里记录一下. 解法 我们将 dp[i][j] 定义为 j 的 i 划分. 对于 n 的 m 划分来说, 其可以原创 2017-10-10 22:43:57 · 2638 阅读 · 2 评论