讨论 / 标准的代码,希望可以帮助到你们
hottestyzy 2015-10-06 19:45:22
点我顶贴 收藏 删除
#include<cstdio>

const int maxn=30001,maxm=26;

int m,n;

int v[maxm],p[maxm];

int f[maxn];

int main()

{

scanf("%d%d",&n,&m);

for (int i=1;i<=m;i++)

scanf ("%d%d",&v[i],&p[i]);

for (int i=1;i<=m;i++)

for (int j=n;j>=v[i];j--)

if (f[j-v[i]]+v[i]*p[i]>f[j])

f[j]=f[j-v[i]]+v[i]*p[i];

printf("%d",f[n]);

return 0;

}

#1 tcz1999@2015-10-21 08:23:28
回复 删除
请问为什么是01背包?
#2 太太太太阳@2017-04-03 09:15:39
回复 删除
回复 #1 tcz1999:仔细看两题的变量与所求量都相同
查看更多回复
提交回复