hdu 2602 Bone Collector

来源:互联网 发布:淘宝铁三角店铺推荐 编辑:程序博客网 时间:2024/04/26 07:06

http://acm.hdu.edu.cn/showproblem.php?pid=2602

01背包问题,f[j]表示背包体积为j时候的最大重量

状态转移方程:f[j]=max(f[j],f[j-v[i]]+w[i])


#include <iostream>#include <string.h> using namespace std;int main(){int T;//freopen("G:/in.txt", "r", stdin);cin>>T;int v[1010],w[1010],f[1010];while(T--){int N,V;cin>>N>>V;memset(v,0,sizeof(v));memset(w,0,sizeof(w));memset(f,0,sizeof(f));for(int i=1;i<=N;i++)cin>>w[i];for(int i=1;i<=N;i++)cin>>v[i];for(int i=1;i<=N;i++)for(int j=V;j>=v[i];j--){if(f[j]<f[j-v[i]]+w[i])f[j]=f[j-v[i]]+w[i];}cout<<f[V]<<endl;}return 0;}

原创粉丝点击