加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

动态规划——01背包(仅c++代码)

发布时间:2020-12-15 04:49:36 所属栏目:百科 来源:网络整理
导读:#include #include using namespace std; int max(int i,int j) { ?? ?if(i>j) return i; ?? ?else ?return j; }? int main() { ?? ?int v[101];? ? //物品价值 ?? ?int w[101];? ??//物品重量 ?? ? ?? ?int i; ?? ? ?? ?int m[101][1001];? ? ??//中间数组

#include


#include


using namespace std;

int max(int i,int j)


{


?? ?if(i>j) return i;


?? ?else ?return j;


}?


int main()


{


?? ?int v[101];? ? //物品价值


?? ?int w[101];? ??//物品重量


?? ?


?? ?int i;


?? ?


?? ?int m[101][1001];? ? ??//中间数组


?? ?int n,c;? ? ??//? n为物品数量? c为背包大小

?? ?cin>>n>>c;

?? ?for(i=1;i<=n;i++)


?? ?{


?? ??? ?cin>>w[i]>>v[i];


?? ?}

?? ?memset(m,sizeof(m));


?? ?for(i=1;i<=n;i++)


?? ?{


?? ??? ?for(int j=1;j<=c;j++)


?? ??? ?{


?? ??? ??? ?if(j>=w[i])


?? ??? ??? ??? ?m[i][j]=max( m[i-1][j]? ?,? ?m[i-1][? j-w[i]? ] +v[i]? );


? ? ? ? ??


?? ??? ??? ?


?? ??? ??? ?else


?? ??? ??? ??? ?m[i][j]=m[i-1][j];


?? ??? ?}


?? ?}


?? ?


?? ?cout<


?? ?


?? ?return 0;


}


//复制到word,再复制到ide,可以用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读