cost->体积          weight->价值

hdu2844

可达/不可达

#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std; const int MAX=;
int dp[MAX];
int c[MAX],w[MAX];
int v; void ZeroOnePack(int cost,int wei)//
{
int i;
for(i = v;i>=cost;i--)
{
dp[i] = max(dp[i],dp[i-cost]+wei);
}
} void CompletePack(int cost,int wei)//完全
{
int i;
for(i = cost;i<=v;i++)
{
dp[i] = max(dp[i],dp[i-cost]+wei);
}
} void MultiplePack(int cost,int wei,int cnt)//多重
{
if(v<=cnt*cost)//如果总容量比这个物品的容量要小,那么这个物品可以直到取完,相当于完全背包
{
CompletePack(cost,wei);
return ;
}
else//否则就将多重背包转化为01背包
{
int k = ;
while(k<=cnt)
{
ZeroOnePack(k*cost,k*wei);
cnt = cnt-k;
k = *k;
}
ZeroOnePack(cnt*cost,cnt*wei);
}
} int main()
{
int n;
while(~scanf("%d%d",&n,&v),n+v)
{
int i;
for(i = ;i<n;i++)
scanf("%d",&c[i]);
for(i = ;i<n;i++)
scanf("%d",&w[i]);
memset(dp,,sizeof(dp));
for(i = ;i<n;i++)
{
MultiplePack(c[i],c[i],w[i]);
}
int sum = ;
for(i = ;i<=v;i++)
{
if(dp[i]==i)
{
sum++;
}
}
printf("%d\n",sum);
}
return ;
}

普通模板  hdu2191

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<string.h>
#include<string>
using namespace std; int c[],w[],num[];
int dp[];
int v,V,V1; void ZeroOnePack(int c, int w)
{
for(int v = V; v >=c; v--)
{
dp[v] = max(dp[v],dp[v-c]+w);
}
} void CompletePack(int c, int w)
{
for(int v = c; v <= V; v++)
{
dp[v] = max(dp[v],dp[v-c]+w);
}
} void MultiplePack(int c, int w, int num)
{
if(c * num >= V)
{
CompletePack(c,w);
}
else
{
int k = ;
while(k < num)
{
ZeroOnePack(k*c, k*w);
num -= k;
k <<= ;
}
ZeroOnePack(num*c, num*w);
}
}
int main()
{
int t;
scanf("%d",&t);
int n;
int i;
while(t--)
{
scanf("%d%d",&V,&n);
for(i = ; i <=n; i++)
{
scanf("%d%d%d",&c[i], &w[i], &num[i]);
}
memset(dp,,sizeof(dp));
for(i = ; i <= n; i++)
{
MultiplePack(c[i],w[i],num[i]);
}
printf("%d\n",dp[V]);
}
return ;
}

最新文章

  1. 无废话ExtJs 入门教程七[登陆窗体Demo:Login]
  2. nginx配置文件中的location中文详解
  3. Scala之类型参数和对象
  4. angular 强制刷新路由,重新加载路由
  5. shell命令:给当前目录里一个文件压缩一份不包含.svn文件的zip包
  6. weblogic管理2 - 创建并启动一个managed server
  7. Quartz Scheduler(2.2.1) - hello world
  8. UIImageView设置为圆形
  9. Java基础知识强化70:正则表达式之引入案例(QQ号码校验)
  10. js插件zClip实现复制到剪贴板功能
  11. paip.输入法编程---增加码表类型
  12. (中等) POJ 3660 Cow Contest,Floyd。
  13. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用
  14. poj3580 splay树 REVOVLE循环
  15. angular的符号
  16. wstngfw IPsec 站点到站点连接示例
  17. Go所提供的面向对象功能十分简洁,但却兼具了类型检查和鸭子类型两者的有点,这是何等优秀的设计啊!
  18. tp剩余未验证内容-5
  19. 使用 ImageEnView 给图片加水印,及建缩略图
  20. Openstack(六)RabbitMQ集群

热门文章

  1. 1.Spring项目启动时,加载相关初始化配置
  2. iOS10权限问题
  3. k8s开启cadvisor http 服务
  4. Eclipse 4.11 Debug jar包代码时进入空心J
  5. 升级Nginx1.14.1以上版本
  6. 【Linux开发】linux设备驱动归纳总结(六):2.分享中断号
  7. Java中流的操作练习
  8. [转帖]看完这篇文章,我奶奶都懂了https的原理
  9. 定时执行exe、windows任务计划、windows服务
  10. 基于apache-commons-email1.4 邮件发送