#include<stdio.h>
int w[5]={0,3,5,2,1},p[5]={0,9,10,7,4}
int c=7,n=4
int cw=0,cp=0,bestp=0
int x[10]={0}
void try(int k)
{
int i
if(k>n)
{
for(i=1i<=ni++)
printf("%2d",x[i])
printf("%d %d\n",cw,cp)
if(bestp<cp)
bestp=cp
}
else
{
x[k]=1
cw=cw+w[k]
cp=cp+p[k]
if(cw<=c)
try(k+1)
x[k]=0
cw=cw-w[k]
cp=cp-p[k]
if(cw<=c)
try(k+1)
}
}
main()
{
clrscr()
try(1)
printf("best_P=%d",bestp)
}
•程序要求•动态规划的过程必须通过DProcessing( wi , vi , m[i,j] ) 计算
•wi表示物品 i的重量,
•vi 代表物品 i的价值,
•m[ i,j ] 代表当前正在规划的重量为 j 的背包 的价值
•注:动态规划的过程禁止直接写在主函数中!