贪婪算法的基本思想:通过一系列步骤来构造问题的解,每一步都是对已构造的部分解的一个扩展,直到获得问题的完整解。贪婪算法中,每一步“贪婪地” 选择最好的部分解,但不顾及这样选择对整体的影响(局部最优),因此得到的全局解不一定最好的解,但对许多问题它能产生整体最优解。具体算法描述:public stat...
分类:
编程语言 时间:
2015-02-24 23:19:27
阅读次数:
267
第一次写二维费用的完全背包问题 加深了一下对于dp数组的理解 此类题还得多消化消化
分类:
其他好文 时间:
2015-02-19 18:38:33
阅读次数:
244
题意: 给定一堆硬币,然后将他们分成两部分,使得两部分的差值最小;输出这个最小的差值。思路: 想了好久都没想到一个合适的状态转移方程。后面看了别人的题解后,才知道能够转成背包问题求解。我们将全部的硬币和的一半作为背包容量,然后将硬币的代价看成其本身的面值。然后背包中能装的最大容量就是当中一个人分得硬...
分类:
其他好文 时间:
2015-02-19 15:08:02
阅读次数:
106
完全背包问题跟01背包问题的区别在于:对每种物品,在01背包中可以选取0个或者1个,而在完全背包中,每种物品都可以选取任意多个。状态定义:dp[i][j]表示:解决了第0~i中物品的选取问题,已消耗容量为j时,获得的最大价值。状态转移:这里的状态转移有两种写法,第一种写法较容易理解,第二中写法理解起...
分类:
其他好文 时间:
2015-02-17 18:44:48
阅读次数:
146
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2015-02-17 12:48:58
阅读次数:
159
引言背包问题作为一个经典问题在动态规划中是很基础的一个部分,而以0-1背包问题为原题,衍生出来的各类题目千变万化,解法也不同。
本文以三道背包问题的变体着手讲解,希望能够做到触类旁通。0-1背包
给定n件物品和一个背包。物品i的价值是Wi,体积为Vi,背包的容量为C。可以任意选择装入背包的物品,求装入背包中的物品最大总价值。(Vi,C均为正整数)
在选择装入背包的物品时,有这样一个隐性条件:对...
分类:
其他好文 时间:
2015-02-16 18:27:03
阅读次数:
242
题意:一个人手里有一笔钱 n ,有 m 所大学,分别知道这些大学的投简历花费和被录取概率,因为钱数有限,只能投一部分学校,问被录取的概率最大有多大。这题除去计算概率以外就是一个 0 1 背包问题,所以可以完全按照 0 1 背包的方法做,只是将价值计算变成概率计算而已dp [ j ] 表示花费了 j ...
分类:
其他好文 时间:
2015-02-15 21:46:19
阅读次数:
202