HDOJ 2602 Bone Collector 解题报告

    01背包问题。以前没有做过,也没学过,所以在百度上学习了一下,链接:http://baike.baidu.com/view/841810.htm

    AC代码如下:

#include <iostream>

using namespace std;

const int MAXLEN=1010;



int f[MAXLEN];

int c[MAXLEN];

int w[MAXLEN];



int main()

{

    int n,v,i,j,cas;

    cin>>cas;

    while(cas--)

    {

        cin>>n>>v;

        memset(f,0,sizeof(f));

        for(i=0;i<n;i++)

            cin>>w[i];

        for(i=0;i<n;i++)

            cin>>c[i];

        for(i=0;i<n;i++)

            for(j=v;j>=c[i];j--)

                f[j]=(f[j]>f[j-c[i]]+w[i]?f[j]:f[j-c[i]]+w[i]);

        cout<<f[v]<<endl;

    }

}

 

你可能感兴趣的:(Collector)