其他分享
首页 > 其他分享> > HDU2602 Bone Collector(01背包)

HDU2602 Bone Collector(01背包)

作者:互联网

01背包模板题。

1维数组倒推。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 #define M 1005
 6 int dp[M];
 7 int val[M],v[M];
 8 
 9 int main(){
10     int t,N,V;
11     cin>>t;
12     while(t--){
13         memset(dp,0,sizeof(dp));
14         cin>>N>>V;
15         for(int i=1;i<=N;i++) cin>>val[i];
16         for(int i=1;i<=N;i++) cin>>v[i];
17         for(int i=1;i<=N;i++)
18             for(int j=V;j>=v[i];j--)
19                 dp[j]=max(dp[j],dp[j-v[i]]+val[i]);
20         cout<<dp[V]<<endl;
21     }
22     return 0;
23 }

 

标签:01,val,HDU2602,int,--,include,Collector,dp
来源: https://www.cnblogs.com/yhxnoerror/p/16388060.html