Acm_dp
文章平均质量分 75
mengt2012
这个作者很懒,什么都没留下…
展开
-
背包问题——“01背包”最优方案总数的求解
回忆一下01背包的动态规划状态及状态方程: 设背包容量为M,一共有N件物品,每件物品质量为weight[i],每件物品的价值为value[i]。1) 子问题定义:dp[i][j]表示前i件物品中选取若干件物品放入剩余容量为j的背包中所能得到的最大价值。2) 根据第i件物品放或不放进行决策。 详细细节就不再多说了,我们直接进入正题。在这里的话,最优方案总数就是物品总价值最大的原创 2015-02-04 19:59:39 · 2952 阅读 · 2 评论 -
多重背包转化为01背包的方法与思路
多重背包: 多重背包问题:给定N种物品和一个容量为V的背包,第i种物品的质量为weight[i],价值为value[i],数量是num[i]件。可以任意选择装入背包的物品,求装入背包中物品的总价值。 这种问题和完全背包一样,可以直接套用01背包的动态规划实现,可是很明显效率太低,时间复杂度并没有减少。 这里我们着重讲一下如何采用二进制划分的方法把多重背包拆分成几件物品。思考原创 2015-02-05 09:46:13 · 1249 阅读 · 1 评论 -
01背包经典问题
//zeroonepack_001.cpp -- 01背包#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;using namespace std;const int maxn =原创 2015-04-07 21:56:35 · 238 阅读 · 0 评论 -
多重部分和问题
//multisum_001.cpp -- 多重部分和#include #include #include #include #include #include #include #include #include typedef long long ll;using namespace std;const int maxN = 100 + 10;const int ma原创 2015-04-08 09:13:00 · 335 阅读 · 0 评论 -
输出最长公共子序列
1006 最长公共子序列Lcs基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为: abcicbaabdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Input第1行:字符串A第2行:字符串原创 2015-05-11 20:24:59 · 1503 阅读 · 1 评论 -
POJ 1661 Help Jimmy
G - Help JimmyTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64uSubmit Status Practice POJ 1661Description"Help Jimmy" 是在下图所示的场景上完成的游戏。 场景中包括多个长原创 2015-06-07 17:31:44 · 1103 阅读 · 0 评论