解题思路:
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 人评分
小明A+B (C语言代码)浏览:1256 |
字符串的输入输出处理 (C语言代码)浏览:944 |
C语言训练-求函数值 (C语言代码)浏览:580 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1311 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1162 |
WU-输出九九乘法表 (C++代码)浏览:1671 |
WU-整除问题 (C++代码)浏览:612 |
简单的a+b (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:262 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:549 |