HDU 2602 Bone Collector(最简单的0/1背包问题)

来源:互联网 发布:餐厅进销存软件 编辑:程序博客网 时间:2024/06/07 01:00

http://acm.hdu.edu.cn/showproblem.php?pid=2602

AC代码:

#include<stdio.h>long dp[1005],w[1005],c[1005];int n;int V;void ZeroOnePack(long c,long w){     int v; for(v=V;v>=c;v--) if(dp[v]<dp[v-c]+w) dp[v]=dp[v-c]+w;}int main(){int T;int i;scanf("%d",&T);while(T--){scanf("%d%d",&n,&V);for(i=1;i<=n;i++)scanf("%ld",&w[i]);for(i=1;i<=n;i++)scanf("%ld",&c[i]);for(i=0;i<=V;i++)dp[i]=0;for(i=1;i<=n;i++)ZeroOnePack(c[i],w[i]);printf("%ld\n",dp[V]);}    return 0;}


 

原创粉丝点击