hdu Bone Collector

入门级动态规划

#include"iostream"
#include"string.h"
#include"stdio.h"
using namespace std;
#define mx 1010
int value[mx],v[mx];
int dp[mx];
int max(int a,int b)
{
    return a>b?a:b;
}
int main()
{
    int n,i,j,t,V;
    cin>>t;
    while(t--)
    {
        cin>>n>>V;
        for(i=1;i<=n;i++) cin>>value[i];
        for(i=1;i<=n;i++) cin>>v[i];
        memset(dp,0,sizeof(dp));
        for(i=1;i<=n;i++)
        {
            for(j=V;j>=v[i];j--)
            {
                dp[j]=max(dp[j],dp[j-v[i]]+value[i]);
            }
        }
        cout<<dp[V]<<endl;
    }
    return 0;
}
View Code

 

posted @ 2015-04-09 11:04  Run_For_Love  阅读(127)  评论(0编辑  收藏  举报