动态规划
__WILL
努力!
展开
-
POJ 3176 Cow Bowling
题意 扔保龄球,若扔中第i层的第j个瓶子,则只能撞到第i+1层的两个相邻的瓶子(j和j+1),每个瓶子有权值,求每层扔中一个瓶子后的最大权值 题解 用动态规划解决。状态转移方程为 dp[0][0] = bowl[0][0] dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]) + bowl[i][j]; (j-1 >= 0) dp[i][j]原创 2016-01-30 14:19:12 · 363 阅读 · 0 评论 -
POJ 1742 Coins
题意 多枚不同面值的硬币,问能形成的面值数。 题解 和挑战程序设计书中的多重部分和(P63)问题相似,用动态规划解决,AC代码看第三段。 1. 未优化,将重复的硬币展开后放一个一维数组中,即将它们当不同的硬币来考虑。这样导致内存超出或者超时 dp[i][j]等于1表示前i枚硬币可以形成价值j,0表示不能形成 #include <iostream> #include <cstring> u原创 2016-01-30 20:36:35 · 255 阅读 · 0 评论 -
POJ 1050. To the Max
参考:http://blog.csdn.net/liufeng_king/article/details/8632430题意 求最大子矩阵和(动态规划问题最大子序列和的变种) 题解 枚举所有子矩阵的开始行i1和结束行i2,那么当前子矩阵第j列的和b[j] = a[i1][j] + a[i1 + 1][j] +… a[i2][j],此时最大子矩阵和就变成求一维数组b的最大子序列和。 代码#in原创 2016-05-16 10:10:22 · 453 阅读 · 0 评论