ACM之背包
PK0071
这个作者很懒,什么都没留下…
展开
-
HDU 1248 寒冰王座
经典完全背包理解好与01背包的区别#includeusing namespace std;int dp[10010];int cost[3]={150,200,350};int MAX(int x,int y){ return x>y?x:y;}int main(){ int T; int n; while(cin>>T) { memset(dp,0,sizeof(原创 2013-04-18 15:41:13 · 851 阅读 · 0 评论 -
HDU 2602 Bone Collector
经典01背包,背包入门必需搞懂的题目特点是:每种物品仅有一件,可以选择放或不放。状态转移方程: f[v]=max{ f[v],f[v-c[i]]+w[i] }不过建议看看二维时怎么实现的,理解了再来看这个用一维的实现,看看是怎么空间优化的,怎么使用滚动数组的#includeusing namespace std;const int N=1000+10;int volume[N];in原创 2013-04-18 14:36:30 · 624 阅读 · 0 评论 -
HDU 2546 饭卡
有限制条件的01背包,关键点最贵的菜最后买,其余的n-1个就是普通的01背包问题#include#includeusing namespace std;const int N=1000+10;int volume[N];int f[N];int MAX(int x,int y){ return x>y?x:y;}int main(){ int n,v;原创 2013-04-18 14:44:14 · 673 阅读 · 0 评论 -
HDU 2191 悼念512汶川大地震遇难同胞
经典多重背包这道题数据不大,使用的转化为01背包解决的,数据大的话就要加入二进制的思想#includeusing namespace std;const int N=1000+10;int cost[N],weight[N],count[N],f[N];int max(int a,int b){ return a>b?a:b;}int main()原创 2013-04-19 11:27:06 · 615 阅读 · 0 评论 -
HDU 1284 钱币兑换问题
一.经典完全背包#includeusing namespace std;int f[32768];int volume[4]={0,1,2,3};int main(){ f[0] = 1; for(int i = 1; i<=3; i++) { for(int j = volume[i]; j<32768; j++) { f[j] += f[j - volu原创 2013-04-19 11:05:07 · 834 阅读 · 0 评论 -
HDU 2844 coins
2844 coins题意:给出每种硬币的价值和数量,问能组成m以内的面值有多少种多重背包二进制优化版,转01会超时的#include#include#define maxn 100010#define max(x,y) (x)>(y)?(x):yusing namespace std;int dp[maxn],n,k;int v[101],w[101],V;void zero原创 2013-04-19 12:04:36 · 855 阅读 · 0 评论 -
HDU 2159 二维费用背包问题
一个关于打怪升级的算法问题。。 题意:一个人在玩游戏老是要打怪升级,他愤怒了,现在,还差n经验升级,还有m的耐心度(为零就删游戏不玩了。。),有m种怪,有一个最大的杀怪数s(杀超过m只也会删游戏的。。),还给出每种怪对应的经验和消耗的耐心度。问如果能升级最多还有多少耐心度?题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2159#inclu原创 2013-08-19 18:02:23 · 833 阅读 · 0 评论