解题思路:
背包问题
注意事项:
参考代码:
#include<stdio.h>
int sum[25][30100];
int max(int a,int b)
{
if(a>b)
{
return a;
}
else
return b;
}
int main()
{
int i,m,N,v,w,j;
scanf("%d%d",&N,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&v,&w);
for(j=0;j<=N;j++)
{
sum[i][j]=sum[i-1][j];//i不能等于0,i-1;
}
for(j=0;j<=N;j++)
{
if(j+v<=N)
{
sum[i][j+v]=max(sum[i-1][j+v],sum[i-1][j]+v*w);
}
}
}
printf("%d",sum[m][N]);
}
0.0分
0 人评分
A+B for Input-Output Practice (IV) (C语言代码)浏览:456 |
WU-输入输出格式练习 (C++代码)浏览:1082 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:711 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:557 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:633 |
简单的a+b (C语言代码)浏览:540 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:484 |
1025题 初学者,求帮忙看下,不知道哪错了浏览:316 |
核桃的数量 (C语言代码)浏览:829 |
计算质因子 (Java代码)浏览:746 |