背包问题模板

原创 2015年02月12日 23:13:20

算法源于《背包九讲》

下面是实现代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<sstream>
#include<vector>
#include<map>
#include<stack>
#include<list>
#include<set>
#include<queue>
#define LL long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1 | 1
using namespace std;
const int maxn=100005;
int w[maxn],v[maxn],num[maxn];//代价数组和价值数组,以及相应的物品最大件数
int W,n;//背包容量和物品件数
int dp[maxn];//背包更新数组
void ZeroOnePack(int weight,int value)//0-1背包
{
    for(int i=W;i>=weight;i--)
        dp[i]=max(dp[i],dp[i-weight]+value);
}
void CompletePack(int weight,int value)//完全背包
{
    for(int i=weight;i<=W;i++)
        dp[i]=max(dp[i],dp[i-weight]+value);
}
void MultiplePack(int weight,int value,int cnt)//多重背包
{
    if(weight*cnt>=W) CompletePack(weight,value);
    else
    {
        for(int k=1;k<cnt;k<<=1)
            ZeroOnePack(k*weight,k*value),cnt-=k;
        ZeroOnePack(cnt*weight,cnt*value);
    }
}
int main()
{
    //读入数据
    return 0;
}


南邮 OJ 1099 移动小球

移动小球 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 1030            测试通过 :...

HDU 1181 变形课

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181

背包问题模板 hdu2191

  • 2014年06月24日 09:56
  • 12KB
  • 下载

(01背包问题动态规划)模板

参考教材 《算法分析与设计及案例教程》 代码 #include using namespace std; void Knapsack(int v[100],int w[101],int c,i...

二维背包问题 + 代码模板

 二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别...

nyoj106背包问题为模板解出杭电oj2187悼念512汶川大地震遇难同胞——老人是真饿了

背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1...

背包问题标准模板

背包问题很多都可以转化为基本的01背包或者完全背包来解决,所以在弄懂之后写一套背包问题的模板备用也是十分有必要的~这是我写的模板,当遇到具体问题还需要具体对待,比如果什么是“价值”什么是“重量”什么是...

背包问题模板

01背包模板 int main() { int i, j, n, m; while(scanf("%d",&n)!=EOF) { scan...

HDU2546【01背包问题模板题】

饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi...

【NOIP模板①】经典DP——背包问题

关于背包,我相信任何一个对OI小有涉猎的人
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:背包问题模板
举报原因:
原因补充:

(最多只允许输入30个字)