摘要: UVA.357 Let Me Count The Ways (DP 完全背包)题意分析与UVA.UVA.674 Coin Change是一模一样的题。需要注意的是,此题的数据量较大,dp数组需要使用long long 类型;另外输出方案为1个和多个的时候,语句是不同的。代码总览/* ... 阅读全文
posted @ 2017-02-16 00:43 pengwill 阅读(121) 评论(0) 推荐(0) 编辑
摘要: UVA.10192 Vacation (DP LCS)题意分析某人要指定旅游路线,父母分别给出了一系列城市的旅游顺序,求满足父母建议的最大的城市数量是多少。对于父母的建议分别作为2个子串,对其做LCS处理,最后的结果即为所求。核心状态转移方程: if(c1[i] == c2[j]) ... 阅读全文
posted @ 2017-02-16 00:43 pengwill 阅读(101) 评论(0) 推荐(0) 编辑
摘要: UVA.10130 SuperSale (DP 01背包)题意分析现在有一家人去超市购物。每个人都有所能携带的重量上限。超市中的每个商品有其相应的价值和重量,并且有规定,每人每种商品最多购买一个。求这一家人所能购买到的最大价值是多少。每个人的所能携带的最大重量即为背包容量。此题只是换... 阅读全文
posted @ 2017-02-16 00:42 pengwill 阅读(101) 评论(0) 推荐(0) 编辑
摘要: UVA.10066 The Twin Towers (DP LCS)题意分析有2座塔,分别由不同长度的石块组成。现在要求移走一些石块,使得这2座塔的高度相同,求高度最大是多少。问题的实质可以转化为LCS(最长公共子序列)问题。 推荐一篇写的比较好的博文: 动态规划求解最长公共子序列(... 阅读全文
posted @ 2017-02-16 00:41 pengwill 阅读(102) 评论(0) 推荐(0) 编辑
摘要: UVA.562 Dividing coins (DP)题意分析给出一堆不同面额的硬币,要求将这这些硬币分为价值接近的2堆(越接近越好,相等的情况最佳,且单个硬币不可再分),并最后输出这2堆硬币价值差值的绝对值。先累加求出这堆硬币的总和sum,然后令sum/2为背包容量,所有硬币为商品... 阅读全文
posted @ 2017-02-16 00:40 pengwill 阅读(123) 评论(0) 推荐(0) 编辑
摘要: UVA.674 Coin Change (DP)题意分析有5种硬币, 面值分别为1、5、10、25、50,现在给出金额,问可以用多少种方式组成该面值。每种硬币的数量是无限的。典型完全背包。 状态转移方程 dp[j+c[i]] = dp[j] + dp[j+c[i]]代码总览/* ... 阅读全文
posted @ 2017-02-16 00:39 pengwill 阅读(84) 评论(0) 推荐(0) 编辑