解题思路:
注意事项:
参考代码:
#include "stdio.h"
int max(int a,int b){
return a>b?a:b;
}
int main()
{
int num,weight;
int i,j;
scanf("%d%d",&num,&weight);
int w[num+1];
int v[num+1];
int dp[num+1][weight+1];
for(i=1;i<=num;i++){
scanf("%d%d",&w[i],&v[i]);
}
for(i=0;i<=num;i++){
dp[i][0]=0;
}
for(i=0;i<=weight;i++){
dp[0][i]=0;
}
for(i=1;i<=num;i++){
for(j=1;j<=weight;j++){
if(j<w[i]){
dp[i][j]=dp[i-1][j];
}
else{
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
}
}
}
printf("%d",dp[num][weight]);
return 0;
}
0.0分
0 人评分
【出圈】 (C++代码)(典型的约瑟夫环——链表解决)浏览:1215 |
C二级辅导-公约公倍 (C语言代码)浏览:1510 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:869 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:936 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:638 |
计算质因子 (C++代码)浏览:1644 |
简单的a+b (C语言代码)浏览:599 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:595 |
printf基础练习2 (C语言代码)浏览:618 |
矩阵加法 (C语言代码)浏览:1723 |