首页 > 代码库 > 动态规划法求解0-1背包
动态规划法求解0-1背包
#include<stdio.h>int c[10][100];int w[10],p[10],x[10];int RUN(int m,int n){ int i,j; for(i=1;i<n+1;i++) for(j=1;j<m+1;j++) { if(w[i]<=j) { if(p[i]+c[i-1][j-w[i]]>c[i-1][j]) c[i][j]=p[i]+c[i-1][j-w[i]]; else c[i][j]=c[i-1][j]; } else c[i][j]=c[i-1][j]; } printf("背包最大价值 %d\n",c[n][m]);}int main(){ int n,W; int i,j,s; for(i=0;i<10;i++) for(j=0;j<100;j++) c[i][j]=0; scanf("%d%d",&n,&W);//商品数量 背包容量 for(i=1;i<n+1;i++) scanf("%d%d",&w[i],&p[i]);//重量 价值 RUN(W,n);}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。