每一階段的決策,有對應的狀態;io
#include<stdio.h>
#define max 100
int v[max],w[max],weight,value,n;
int d[max][max];
int pick()
{
int i,j;
for(i=1;i<=n;i++)
for(j=0;j<=weight;j++)
{
d[i][j]=(i==1?0:d[i-1][j]);
if(j>=w[i])
{
d[i][j]=d[i][j]>d[i-1][j-w[i]]+v[i]?d[i][j]:d[i-1][j-w[i]]+v[i];
}
}
printf("該包最多能裝價值爲:%d 的東西",d[n][weight]);
return 0;
}di
int main()
{
int i;
//freopen("in.txt","r",stdin);
scanf("%d %d",&n,&weight);
for(i=1;i<=n;i++)
scanf("%d %d",&v[i],&w[i]);
pick();
return 0;return
}printf