
背包
M_ercury_
这个作者很懒,什么都没留下…
展开
-
HDU 2159 FATE 二维费用背包
题目: https://vjudge.net/problem/HDU-2159题解: 二维费用完全背包。 注意 读题啊!!!开始以为是求剩下的经验值,,其实是求最大的剩下的忍耐度!!!2333 代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;原创 2017-09-06 19:19:00 · 206 阅读 · 0 评论 -
Codevs 2033 邮票
题目: http://codevs.cn/problem/2033/题解: 完全背包,每个面值的邮票可以无限放,求一个最小张数,若小于等于n,则能凑出。 体积是要凑得面值,价值是枚数,取min,要初始化为inf。(类似于恰好装满体积为V的背包) 注意特判若最大值*总枚数以内的面值都能凑出,则输出maxx*n;代码:#include<iostream>#include<cstdio>u原创 2017-09-28 21:38:07 · 245 阅读 · 0 评论 -
Poj 1384 Piggy-Bank 完全背包
题目: https://cn.vjudge.net/problem/POJ-1384题意: 多组数据; 给定存钱罐的初始重量和最终重量,给定n中货币的价值,重量; 求恰好满足存钱罐的最终重量的货币总钱数最小值。若不满足,输出”xxx”; 题解: 1.每种货币都能放任意数量,完全背包; 2.恰好装满存钱罐,取min,初始化dp[i]=inf(i!=0);保证每个状态都是从起点dp[0原创 2017-09-02 08:58:23 · 1260 阅读 · 0 评论 -
Openjudge 4978:宠物小精灵之收服
题目: http://noi.openjudge.cn/ch0206/4978/ 题解: 裸二维背包。 最后统计答案的时候,注意一下要求体力消耗最小。哪有把精灵数量设为k的,,害我了一次。。。。哀怨ing代码:#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,M原创 2017-09-27 10:07:49 · 677 阅读 · 0 评论 -
洛谷P1455 搭配购买
题目: https://www.luogu.org/problem/show?pid=1455#sub题解: 先用并查集维护搭配,然后将多个物品捆绑,做01背包; 注: 有一些num数组为空,不能贸然进行unique,会把不为空的相同num删去, 在01循环时,特判一下num.v即可代码:#include<iostream>#include<cstdio>#include<algo原创 2017-09-27 08:12:13 · 260 阅读 · 0 评论 -
Codevs 1025 选菜
题目: http://codevs.cn/problem/1025/题解: 预处理略复杂的裸01; 价格—>*10; 出现多次,选择一次—>unique 重载结构体== 必须选择—>先for一遍。记录还剩的钱和已经得到的美味度。代码:#include<iostream>#include<cstdio>#include<algorithm>using namespace std;原创 2017-09-25 15:55:33 · 206 阅读 · 0 评论 -
Codevs 1155 金明的预算方案
题目: http://codevs.cn/problem/1155/题解: 想要购买附件,必须购买主件。 由于某主见最多拥有两个附件,所以可以枚举情况,分组背包。 如主件 x 有附件 x1 , x2 ; 有 x, x+x1, x+x2, x+x1+x2 四种情况,这四种情况是互相排斥的,只能选择一种,符合分组背包要求; 预处理貌似有点复杂,求指导代码简洁化; 正解还可以用有依赖的背原创 2017-09-06 21:26:28 · 341 阅读 · 0 评论 -
HDU 1712 ACboy needs your help 分组背包
题目:https://vjudge.net/problem/HDU-1712题解:分组背包问题;代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N=100,M=100;int n,m,grp[N][M],dp[M];int mai原创 2017-09-06 19:58:33 · 258 阅读 · 0 评论 -
【笔记+代码】背包问题
01背包完全背包多重背包混合背包二维费用背包 n个物品 背包容量W w[i] 费用,v[i] 价值; 01背包每件物品选或不选。void zerone(int wei,int val){ for(int j=W;j>=wei;j--) d[j]=max(d[j],d[j-wei]+val);}for(int i=1;i<=n;i++) zerone(w[i],原创 2017-09-06 19:25:28 · 424 阅读 · 3 评论