解题思路:动态规划,和分苹果一样的,这里的草药先用苹果代替了,偷下懒。
注意事项:
参考代码:
#include <stdio.h> #include <string.h> int main() { int dp[10001]; memset(dp,0,sizeof(dp)); int n,v,i,j;//n是苹果的个数,v是背包的大小 int size =0;//苹果的大小 int value = 0;//苹果的个数 scanf("%d%d",&v,&n); for(i = 1; i < n+1; i++) { scanf("%d%d",&size,&value); for(j = v; j >= size; j--)//从容量是v-size的背包逐个放苹果 { if(dp[j-size] + value > dp[j])//如果当前这个苹果放上去之后的价值要大于不放的价值那么就放苹果 dp[j] = dp[j-size] + value; } } printf("%d\n",dp[v]); return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:736 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:679 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:595 |
【出圈】 (C语言代码)浏览:554 |
printf基础练习2 (C语言代码)浏览:741 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1250 |
剪刀石头布 (C语言代码)浏览:1751 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:595 |
求圆的面积 (C语言代码)浏览:1669 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:504 |