hdu2602-01背包水题

来源:互联网 发布:用淘宝联盟卖家知道吗 编辑:程序博客网 时间:2024/06/05 11:36

和poj3624相似,只不过用骨头换宝藏。就直接上代码:

#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=1050;const int Maxn=1050;int f[maxn];int c[Maxn],w[Maxn];int main(){    int T;    scanf("%d",&T);    while(T--){        int n,m;        scanf("%d%d",&n,&m);        for(int i=0;i<n;i++){            scanf("%d",&w[i]);        }        for(int i=0;i<n;i++){            scanf("%d",&c[i]);        }        memset(f,0,sizeof(f));        for(int i=0;i<n;i++){            for(int v=m;v>=0&&v-c[i]>=0;v--)                f[v]=max(f[v],f[v-c[i]]+w[i]);        }        int mx=0;        for(int i=0;i<=m;i++)            mx=max(mx,f[i]);        printf("%d\n",mx);    }    return 0;}


0 0
原创粉丝点击