HDU 2602 - Bone Collector

来源:互联网 发布:seo思考做事情 编辑:程序博客网 时间:2024/04/27 02:33

知识点:01背包

01背包是基础,一定要把01背包真正搞懂,那其它的背包就容易懂了。

#include <cstdio>#include <memory.h>int dp[1001],V;inline int max(int a,int b){    return a>b ? a : b;}void ZeroOnePack(int val,int vol){    for(int v=V;v>=vol;v--)    dp[v]=max(dp[v],dp[v-vol]+val);}int main(){    int t,n,val[1000],vol[1000];    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&n,&V);        for(int i=0;i<n;i++)        scanf("%d",&val[i]);        for(int i=0;i<n;i++)        scanf("%d",&vol[i]);        memset(dp,0,sizeof(dp));        for(int i=0;i<n;i++)        ZeroOnePack(val[i],vol[i]);        printf("%d\n",dp[V]);    }    return 0;}