解题思路:动态规划,和分苹果一样的,这里的草药先用苹果代替了,偷下懒。
注意事项:
参考代码:
#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语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:770 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:883 |
模拟计算器 (C语言代码)浏览:2300 |
整除的尾数 (C语言代码)浏览:814 |
拆分位数 (C语言代码)浏览:444 |
1063题 初学者,求帮忙看下,不知道哪错了浏览:232 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:623 |
拯救雅典娜浏览:1241 |
简单的a+b (C语言代码)浏览:657 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:444 |