01背包问题

来源:互联网 发布:鱼骨标本淘宝 编辑:程序博客网 时间:2024/05/29 21:30

01背包问题

#include<stdio.h>int max(int i,int j){return ( i>j?i:j);}int main(){int n,m;int V[201][5001];int we[201],vol[201];int i,j;scanf("%d%d",&n,&m);for(i=1;i<=n;i++)scanf("%d%d",&we[i],&vol[i]);for(i=0;i<=n;i++)V[i][0]=0;for(i=0;i<=m;i++)V[0][i]=0;for(j=1;j<=m;j++){for(i=1;i<=n;i++){if(j<we[i])V[i][j]=V[i-1][j];elseV[i][j]=max(V[i-1][j],V[i-1][j-we[i]]+vol[i]);}} printf("%d",V[n][m]);return 0;} 



0 0