HDU 2602 Bone Collector

来源:互联网 发布:能记录游泳数据的手环 编辑:程序博客网 时间:2024/06/15 19:52

很多种骨头,每个骨头都有体积和价值,要怎么拿才能使得拿到的价值最大。很明显01背包。

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int dp[1010],value[1010],w[1010];int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n,V;        scanf("%d%d",&n,&V);        memset(dp,0,sizeof(dp));        for(int i = 0 ; i < n ; i++)            scanf("%d",&value[i]);        for(int i = 0 ; i < n ; i++)            scanf("%d",&w[i]);        for(int i = 0 ; i < n ; i++)        {            for(int v = V ; v >= w[i] ; v--)                dp[v] = max(dp[v-w[i]]+value[i],dp[v]);        }        printf("%d\n",dp[V]);    }    return 0;}
0 0