完全背包问题

来源:互联网 发布:天敏网络电视机顶盒 编辑:程序博客网 时间:2024/04/27 16:03
#include <iostream>#include <string>using namespace std;const int maxn=100;int d[maxn][maxn];int n=3;int w[3]={3,4,2};int v[3]={4,5,3};//搜索,到第i种物品,还有j的容量int max(int i,int j){    return i>j?i:j;}int dfs(int i,int j){    int res=0;    if(i==n)        res=0;    else    {        for(int k=0;k*w[i]<=j;k++)        {            if(j-k*w[i]>=0)                res=max(res,dfs(i+1,j-k*w[i])+k*v[i]);        }    }    return res;}int main(){    for(int i=0;i<maxn;i++)    {        for(int j=0;j<maxn;j++)            d[i][j]=0;    }    cout<<dfs(0,7)<<endl;    return 0;}


0 0
原创粉丝点击