解题思路:
01背包,价值加个乘法而己
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
int max(long int a,long int b)
{
return a>=b?a:b;
}
int main()
{
long int i,j,n,m,ma=0;
long int a[30][2],pr[30010];
scanf("%ld %ld",&n,&m);
memset(pr,0,sizeof(pr));
for(i=0;i<m;i++)
{
scanf("%ld %ld",&a[i][0],&a[i][1]);
a[i][1]=a[i][0]*a[i][1];
}
for(i=0;i<m;i++)
{
for(j=n;j>=a[i][0];j--)
{
pr[j]=max(pr[j],pr[j-a[i][0]]+a[i][1]);
}
}
for(i=0;i<=n;i++)
{
if(ma<pr[i])
ma=pr[i];
}
printf("%ld",ma);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.10 (C++代码)浏览:950 |
C语言训练-求函数值 (C语言代码)浏览:944 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:747 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:821 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:760 |
用筛法求之N内的素数。 (C++代码)浏览:754 |
川哥的吩咐 (C语言代码)浏览:663 |
图形输出 (C语言代码)浏览:1019 |
整除问题 (C语言代码)浏览:594 |