hdoj2191多重背包化为01背包
来源:互联网 发布:淘宝3c认证必须要吗 编辑:程序博客网 时间:2024/06/07 09:49
不化为01背包情况
#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;static int dp[105][105];//前i种物品价格为j的时候总重量static int p[105],h[105],c[105];int main(){int C;scanf("%d",&C);while(C--){int n,m;scanf("%d %d",&n,&m);for (int i=1;i<=m;++i) scanf("%d %d %d",&p[i],&h[i],&c[i]);memset(dp,0,sizeof(dp));int ans = 0;for (int i=1;i<=m;++i){for (int j=0;j<=n;++j){for (int k=0;k<=c[i];++k){if (j>=k*p[i]){dp[i][j] = max(dp[i-1][j-k*p[i]]+k*h[i],dp[i][j]);}}ans = max(ans,dp[i][j]);}}printf("%d\n",ans);}return 0;}
化为01背包:
//化为01背包#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;static int dp[2010];//前i种物品价格为j的时候总重量static int p[2010],h[2010];int main(){int C;scanf("%d",&C);while(C--){int n,m;int cs = 0;scanf("%d %d",&n,&m);int c;int p1,h1;for (int i=1;i<=m;++i){ scanf("%d %d %d",&p1,&h1,&c); for (int j=1;j<=c;++j) { p[cs+j] = p1;h[cs+j] = h1; } cs+=c;}memset(dp,0,sizeof(dp));int ans = 0;for (int i=1;i<=cs;++i){for (int j=n;j>=p[i];--j){dp[j] = max(dp[j],dp[j-p[i]]+h[i]);ans = max(ans,dp[j]);}}printf("%d\n",ans);}return 0;}
0 0
- hdoj2191多重背包化为01背包
- HDOJ2191(多重背包)
- 多重背包(模板)--hdoj2191
- HDU1712(背包化为01背包)
- hdu1171 01背包 | 多重背包
- 01背包,完全背包, 多重背包
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包详解
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包模板
- 01背包 完全背包 多重背包
- 01背包,完全背包,多重背包详解
- 01背包 完全背包 多重背包
- 01背包、完全背包、多重背包模版。
- 黑马程序员——Java基础--键盘录入数据与流程控制语句
- android Graphics(三):区域(Range)
- HDOJ1181变形课(DFS)
- input text表单中嵌入select选项的方法
- Chapter 5:collection view - iOS 8 Swift Programming cookBook 读书笔记
- hdoj2191多重背包化为01背包
- Java基础-常用API之String类
- js深入理解(二)
- ZOJ 2734--Exchange Cards【DFS经典】
- 82. Remove Duplicates from Sorted List II
- DPDK 内存管理(一)(内存初始化)
- hbase无法启动,The node /hbase is not in ZooKeeper和Can't get master address from ZooKeeper;
- 快速排序
- Static修饰成员变量