动态规划 之背包
meme_y
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HD Piggy-Bank完全背包
#include #include #define min(a,b) a<b? a:bint dp[1000005];int main(){ int t; scanf("%d",&t); while(t--) { memset(dp, 99898,sizeof(dp)); //注意初始化数组这里 dp原创 2013-04-22 20:34:36 · 410 阅读 · 0 评论 -
多重背包
#include #include #include using namespace std;int main(){ int t,n,m; scanf("%d", &t); while(t--) { scanf("%d%d", &n, &m); int c[105], w[105], num[105],原创 2013-04-19 16:29:46 · 416 阅读 · 0 评论 -
二维费用 hdu 2159 FATE(完全背包)HDU OJ 4501 小明系列故事——买年货【DP】
二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为w[i]。算法费用加了一维,只需状态也加一维即可。设f[i][v][原创 2013-05-03 15:40:58 · 698 阅读 · 0 评论 -
分组背包基础--1712 ACboy needs your help
有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有: f[k][v]=ma原创 2013-05-04 09:45:52 · 448 阅读 · 0 评论 -
二维费用 买糖果
Description清明君、五一君和六一君三个人是好朋友。他们很喜欢去一家糖果店买糖果,糖果店有巧克力和草莓两种口味的糖果出售。清明君喜欢吃巧克力味的糖果,六一君喜欢吃草莓味的糖果,五一君是个吃货,两种口味的糖果他都很喜欢吃。店老板把两种口味的糖果混在一起装在罐子里,于是每个罐子里每种糖果的数量都可能不相同。这一天,清明君、五一君和六一君三个人去买糖果。他们的钱只能购买m罐糖果。原创 2013-05-03 15:35:26 · 595 阅读 · 0 评论 -
HU 3496 Watch The Movie---二维费用
点击打开链接这题是一道二维费用背包问题,刚开始的时候我把所有的都初始化为-1,只有ans[0][0]=0,这样是不对的,为什么呢。。。如果要恰好用完的话,是要将别的都初始化为-1。但是这个恰好是指的物品的件数恰好,那么就是说二维的费用中有一个费用是恰好,所以初始化-1的时候只要是对有这个要求的这一维进行初始化就可以了。#include #include #include原创 2013-05-03 17:22:51 · 524 阅读 · 0 评论
分享