首页 > 代码库 > HDU 2602 Bone Collector (01背包)
HDU 2602 Bone Collector (01背包)
简单01背包
1 #include<stdio.h> 2 #include<string.h> 3 int max(int a,int b) 4 { 5 return a>b?a:b; 6 } 7 int main() 8 { 9 int t; 10 int n,v; 11 int f[1100],val[1100],vol[1100]; 12 scanf("%d",&t); 13 while(t--) 14 { 15 scanf("%d %d",&n,&v); 16 for(int i=0;i<n;i++) 17 scanf("%d",&val[i]); 18 for(int i=0;i<n;i++) 19 scanf("%d",&vol[i]); 20 memset(f,0,sizeof(f)); 21 for(int i=0;i<n;i++) 22 for(int j=v;j>=0;j--) 23 if(j>=vol[i]) 24 f[j]=max(f[j],f[j-vol[i]]+val[i]); 25 printf("%d\n",f[v]); 26 } 27 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。