44424742 发表于 2013-1-26 13:37:32

hdu2602——Bone Collector

01背包问题!
1.现在的f]就相当于原来的f];
2.f表示前i件物品恰放入一个容量为v的背包可以获得的最大价值.
#include<stdio.h>#include<string.h>int a,b;int f;int main(){    int t,i,j,n,v;    scanf("%d",&t);    while(t--)    {      memset(f,0,sizeof(f));      scanf("%d%d",&n,&v);      for(i=1;i<=n;i++)            scanf("%d",&a);      for(i=1;i<=n;i++)            scanf("%d",&b);      for(i=1;i<=n;i++)            for(j=v;j>=0;j--)            {                if(j-b>=0)                {                  f=f]+a>f?f]+a:f;                }                else f=f;            }            printf("%d\n",f);    }}
页: [1]
查看完整版本: hdu2602——Bone Collector