DP(动态规划)背包问题
来源:互联网 发布:绘制图纸软件 编辑:程序博客网 时间:2024/05/22 14:55
0-1背包问题
将一个容量为V的背包,物品有两个属性,一个w和一个v表示体积和属性值。每种物品只有一个。要求装下尽可能多,求最大价值。
转移状态方程:
dp[j]=max(dp[dp[j-list[i].w]+list[i].v,dp[j-1])
#include <iostream>#include<stdio.h>using namespace std;struct E{int w;int v;}list[2001];int dp[101];int max(int a,int b){ return a>b?a:b;}int main(){ int T; scanf("%d",&T); while(T--) { int s,n; scanf("%d%d",&s,&n); int count=0;//total numbers for(int i=1;i<=n;i++) {//input int v,w,k; scanf("%d%d%d",&w,&v,&k); int c=1; while(k-c>0) { k-=c; list[++count].w=w*c; list[count].v=c*v; c*=2; } list[++count].w=w*k; list[count].v=v*k; } for(int i=1;i<=s;i++){dp[i]=0;}//init for(int i=1;i<=count;i++) { for(int j=s;j>=list[i].w;j--) { dp[j]=max(dp[j],dp[j-list[i].w]+list[i].v); } } printf("%d\n",dp[s]); } return 0;}
阅读全文
0 0
- 【动态规划】背包问题 - dp
- DP(动态规划)背包问题
- 01背包问题(动态规划DP)
- 01背包问题--dp动态规划
- 01背包问题(动态规划DP)
- 动态规划和背包dp问题
- 动态规划 背包问题
- 【动态规划】背包问题
- 动态规划-背包问题
- 动态规划+背包问题
- 动态规划-背包问题
- 背包问题 -- 动态规划
- 《背包问题》 动态规划
- 动态规划-背包问题
- 动态规划 背包问题
- 动态规划 背包问题
- 动态规划 背包问题
- 动态规划 背包问题
- Recyclerview----点击事件
- Python 操作记录
- 阿里云Redis数据过期和淘汰策略解答
- 第十二周项目1
- 批量提取文件名到txt文档的方法
- DP(动态规划)背包问题
- ubuntu下安装配置shadowsock
- Java压测之四两拨千斤
- java程序加载sigar库报异常的错误的解决
- 傻傻的情绪
- 在myeclipse中ssh框架搭建的麻烦问题
- C#中实现Form的Minimize、Maximize、Close按钮及任务栏图标
- vector第四步修炼之道
- 如何使用PowerBI将文件夹的内容中的所有文件合并为一张表进行统计