ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年6月23日

摘要: 转载:http://peng5047.iteye.com/blog/961592排列、组合我们都很熟悉,为了更好的分析问题,我们用A(n,m)表示从n个元素中取出m个元素的不同组合数,用C(n,m)表示从n个元素中取出m个元素的不同排列数。根据排列组合的性质有如下公式成立:1.A(n,m) = n!/m!2.A(n,m) = m*A(n-1,m-1) + A(n-1,m)3.C(n,m) = n!/(m!*(n-m)!)4.C(n,m) = C(n-1,m) + C(n-1,m-1)对于求排列组合数的问题,如果我们采用公式1和公式3,那么就会涉及求阶乘,而13的阶乘是6227020800,已经 阅读全文
posted @ 2013-06-23 16:50 ldjhust 阅读(832) 评论(0) 推荐(0) 编辑

摘要: 转载:http://www.cfanz.cn/index.php?c=article&a=read&id=51269如果你不知道什么叫做0-1背包问题,下面是0-1背包问题的简单描述假设有n件物品每件物品的体积为w1, w2……wn 相对应的价值为 v1, v2.……vn。01背包是在n件物品取出若干件放在空间为total_weight的背包里,使得背包的总体积最大关于0-1背包问题没有优化版本,请看这里上面的核心代码是下面这一段 for (int i = 1; i j) { c[i][j] = c[i-1][j]; } else { if (c[... 阅读全文
posted @ 2013-06-23 11:46 ldjhust 阅读(443) 评论(0) 推荐(0) 编辑

摘要: 转载:http://www.360doc.com/content/12/0504/09/9568648_208525818.shtml0-1背包问题: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题的特点是:每种物品只有一件,可以选择放或者不放。算法基本思想: 利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。 其状态转移方程是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]} //... 阅读全文
posted @ 2013-06-23 09:01 ldjhust 阅读(437) 评论(0) 推荐(0) 编辑