上一页 1 ··· 7 8 9 10 11
摘要: 问题描述: 使用一个货币系统{1,2,5,10,...}产生18 单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1,3x5+2+1,等等其它。 写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。保证总数将会适合long long (C/C++) 和Int64 (Fre 阅读全文
posted @ 2017-11-23 11:57 newbird2017 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 给出N种物品,每个物品无限件可选,对应的体积为w[i],这些物品可以使多大的背包完全装满? V <= 1000 直接在上一篇的基础上修改: 第i次循环后,dp[j]表示容量为j的背包可以被前i种物品装满。 递推关系: dp[j] == true => dp[j + w[i] ]= tru 阅读全文
posted @ 2017-11-22 17:31 newbird2017 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 给出N个物品,每个物品的体积为w[i],这些物品可以使多大的背包完全装满? 分析: 用dp[v]表示容量为i的背包可以被装满。 0 <= v <= sum(w[i]) 在循环开始前,初始化dp[0] = true,dp[i] = false (i>0)。 第一次循环,表示只有一件物品可选 阅读全文
posted @ 2017-11-22 17:22 newbird2017 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 有N种物品,每种物品有无限量可选。每种物品对应的重量和价值分别为w[i]和p[i]。用容量为V的背包,任意选取。怎样使总价值最大。 一、笨方法,也是最容易理解的方式: 考虑dp[i][V]表示剩余容量为V,可选物品种类为i时的最优解。 那么第i件的选择方式有两种: 1、不选:dp[ i 阅读全文
posted @ 2017-11-22 17:00 newbird2017 阅读(786) 评论(0) 推荐(0) 编辑
摘要: dp[i]表示以s[i]结尾的完全匹配的最大字符串的长度。 开始递推 s[i] = ')' 的情况 先想到了两种情况: 1、s[i-1] = '(' 相邻匹配 这种情况下,dp [i] = dp[i-2] + 2。 2、s[i-1] = ')' 这种情况下,第一感觉是要看dp[i-1]的值,即 j. 阅读全文
posted @ 2017-11-21 12:41 newbird2017 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 第一道被我AC的hard题!菜鸡难免激动一下,不要鄙视.. Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parenthese 阅读全文
posted @ 2017-11-21 10:23 newbird2017 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 恰好装满,表示空间V完全被占用。 之前的题目是说,在不超过空间V的情况下,使价值最大化。 现在考虑动态规划的初始值问题。 在前一个问题中,dp[i][v]初始化设置为0. 因为在初始状态,背包中没有任何物品。不论背包的容量多大,里面的价值只是0.这个状态是合法的。因为背包并没有超出容量。 现在,背包 阅读全文
posted @ 2017-11-20 19:40 newbird2017 阅读(5659) 评论(0) 推荐(2) 编辑
摘要: 一、题目描述: 有n件物品,每件物品占用的空间为w[i], 价值为p[i]。 有容量为 V 的背包。求在容量允许的范围下,背包装入物品的最大价值。 用dp[i][v] 表示 用剩余容量为v的背包,来装前i件物品,可以达到的最大价值。 那么 dp[i][0] = 0; 在当前为i,v的情况下,考察第i 阅读全文
posted @ 2017-11-20 19:11 newbird2017 阅读(3728) 评论(2) 推荐(1) 编辑
上一页 1 ··· 7 8 9 10 11