动态规划 03 (采药)
来源:互联网 发布:hitleap类似的软件 编辑:程序博客网 时间:2024/05/26 07:29
03 采药
t代表采药总时间,m代表药的数目,接下来m行,输入采每个药的时间和价值,求最大价值。
01背包问题,用一个结构体good,里面c代表时间,w代表价值。
用数组f【i】【v】表示前 i件药材花费时间 v,那么可得公式 f【i】【v】=max{f【i-1】【v】,f【i-1】【v-c【i】】},即第 i件药材放或者不放的问题。在实际代码中,二维数组可进行空间优化,用f【j】表示即可,f【】数组在变化中更新达到目的。
代码如下:
#include<bits/stdc++.h>using namespace std;const int MAX=101;const int MAXX=1001;struct good{int c;int w;}goods[MAX];int main(){int i,j,n,v;int f[MAXX]; cin>>v>>n;for(i=0;i<=v;i++)//f【v】代表 体积为 v 能装的最大价值 f[i]=0; for(i=0;i<n;i++)cin>>goods[i].c>>goods[i].w;for(i=0;i<n;i++)//前 i件 {for(j=v;j>=goods[i].c;j--)//体积 j {if(f[j]<f[j-goods[i].c]+goods[i].w)//公式 f[j]=f[j-goods[i].c]+goods[i].w; }}cout<<f[v]<<endl;return 0;}
0 0
- 动态规划 03 (采药)
- 动态规划练习--03(采药)
- 动态规划—03采药
- 动态规划练习03:采药
- 动态规划练习一 03:采药
- 动态规划练习一 03:采药
- Algorithm学习笔记 --- 采药(动态规划)
- C++动态规划之采药(openjudge)
- 采药--动态规划
- 采药 动态规划
- 动态规划-采药
- 动态规划:采药
- 动态规划 采药
- 动态规划―采药
- 【动态规划】poj2773采药问题
- Vijos P1104 采药 动态规划
- ACM-动态规划3-采药
- Vijos P1104 采药(动态规划,01背包)
- leetcode数组之Valid Sudoku
- 计算机硬件的五大单元以及CPU的种类
- HDU 1260 Tickets(DP OR 记忆化搜索)
- warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
- 千万亿级别中文金额转数字
- 动态规划 03 (采药)
- JCE无限制权限策略文件
- 文章标题
- 毕设——图像视觉显著性目标检测(第五周到第七周工作总结)
- SQL面试题
- LeetCode-117. Populating Next Right Pointers in Each Node || (JAVA)
- [转]Eclipse下tomcat输出路径配置
- iOS 网络图片下载_队列与线程_swift3
- Fibonacci数