算法—背包
王老大_
奋斗在路上
展开
-
经典背包问题 01背包+完全背包+多重背包
转自http://blog.csdn.net/lyhvoyage/article/details/854585201 背包有n 种不同的物品,每个物品有两个属性,size 体积,value 价值,现在给一个容量为 w 的背包,问最多可带走多少价值的物品。 int f[w+1]; //f[x] 表示背包容量为x 时的最大价值 for (int i=0;原创 2015-03-26 07:13:46 · 703 阅读 · 0 评论 -
HDU 1171 Big Event in HDU(01背包)
题意:给出每个物体的价值和物体的数量,如何分使得A,B所得价值最接近并且A的价值不能小于B思路:DP算法,背包问题,求法是先求出总价值sum,再用dp[]求sum/2最多能放多少价值!即可以求出其中一个数了,另一个就是sum-dp[sum/2]了。#include <iostream>#include <cstdio>#include <cstring>using namespace std;原创 2015-03-22 05:50:01 · 1225 阅读 · 0 评论 -
POJ 2184 Cow Exhibition (变种01背包)
题意:有一些奶牛,他们有一定的s值和f值,这些值有正有负,最后让保证s的和为非负且f的和为非负的情况下,s+f的最大值。 思路:很明显的就是取与不取的问题,对于这类问题的第一想法就是背包,但是这道题目很明显与一般的背包不同,因为有负数,但是联想到以前也有这种将负数存入下标的情况,那就是将数组开大,换一种存法 我们用dp[i]存放每个s[i]能得到的最佳F,那么我们就可以根据s[i]的取值采取两种原创 2015-03-22 07:55:41 · 731 阅读 · 0 评论 -
POJ 1276 Cash Machine (完全背包问题)
题意:给出一个价值sum,然后给出n,代表n个方案,接着n对代表个数与价值,要求最接近sum,但不超过sum的价值。#include <iostream>#include <algorithm>#include <string.h>#include <cstdio>using namespace std;int dp[100010];int main(){ int sum ,i ,原创 2015-03-22 21:27:02 · 627 阅读 · 0 评论 -
HDU 2159 FATE (二维完全背包)
Problem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s原创 2015-04-02 18:43:12 · 418 阅读 · 0 评论 -
HDU 1712 ACboy needs your help (分组背包问题)
有n门课程,和m天时间,完成a[i][j]得到的价值为第i行j列的数字,求最大价值...... 看过背包九讲的话,做这个就容易多了,其实就是简单的分组背包问题。 #include #include using namespace std;int A[105][105];int dp[105];int main(){ int n, m;原创 2015-04-02 20:13:32 · 382 阅读 · 0 评论 -
HDU 2191 (多重背包)
//未优化01背包#include <iostream>#include <string.h>using namespace std;int c[105],v[105],b[105];int dp[105];int main(){ int n,m,t; cin>>t; while(t--){ cin>>n>>m; for(int i=1原创 2015-03-24 22:06:15 · 1026 阅读 · 0 评论 -
POJ 1837 Balance (01背包)
题意:有一个天平,左臂右臂各长15,然后给出n,m。n代表有几个挂钩,挂钩给出负数代表在左臂的距离,正数则在右臂;m代表有m个砝码,要你求出使得这个天平保持平衡有几种方法,要求所有砝码全部使用完。思路:首先我们先要明确dp数组的作用,dp[i][j]中,i为放置的砝码数量,j为平衡状态,0为平衡,j<0左倾,j>0右倾,由于j作为下标不能是负数,所以我们要找一个新的平衡点,因为15*20*20 =原创 2015-03-22 04:45:12 · 1273 阅读 · 1 评论