|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <iostream>
using namespace std;
struct Bone {
int num;
int v;
int m;
};
const int MAX = 1090;
Bone a[MAX];
int dp[MAX];
int x[MAX];
int main() {
int n, v, i, j;
printf("请输入背包的容量和物品的个数:");
scanf("%d %d",&v,&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个物品的重量与价值:",i);
scanf("%d %d",&a[i].m,&a[i].v);
x[i]=0;
}
for(i=1;i<=n;i++)
for(j=v;j>=a[i].m;j--){
if(dp[j] < dp[j-a[i].m] + a[i].v)
{
dp[j] = dp[j-a[i].m] + a[i].v;
x[i]=1;
}
else
x[i]=0;
}
for(i=1;i<=n;i++)
printf("%d %d\n",i,x[i]);
printf("最大价值为:%d\n",dp[v]);
return 0;
}
这个for循环哪里我看不懂啊~~:'( |
|