hdu2602 Bone Collector 01背包问题
来源:互联网 发布:nginx conf 配置 编辑:程序博客网 时间:2024/06/06 03:04
题目大意:
给出骨头的价值和重量,用体积为V的背包装这些骨头,求最大价值
大致思路:
这里为01背包的讲解
http://blog.csdn.net/Remilitarize/article/details/55666889
C:(二维数组)
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1010;int value[maxn],weight[maxn];int dp[maxn][maxn];int main(){ int n; while(scanf("%d",&n)!=EOF){ while(n--){ int a,b,i,j; scanf("%d%d",&a,&b); //a为骨头数量,b为背包容量 memset(dp,0,sizeof(dp)); //初始化 for(i=1;i<=a;i++) scanf("%d",&value[i]); for(i=1;i<=a;i++) scanf("%d",&weight[i]); for(i=1;i<=a;i++) //选取第i个骨头 for(j=0;j<=b;j++) //当前背包容量为j if(j>=weight[i]) //如果第i个骨头能够装入背包 dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]); /*不装骨头为dp[i-1][j],装骨头为把第i个骨头的重量去掉对应容量的dp[i-1][j-weight[i]并加上这个骨头的价值value[i]*/ else dp[i][j]=dp[i-1][j]; printf("%d\n",dp[a][b]); //a个骨头全部装进去并当前容量为b的最大价值 } } return 0;}
C:(一维数组)
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1010;int value[maxn],weight[maxn];int dp[maxn];int main(){ int n; while(scanf("%d",&n)!=EOF){ while(n--){ int a,b,i,j; scanf("%d%d",&a,&b); memset(dp,0,sizeof(dp)); for(i=1;i<=a;i++) scanf("%d",&value[i]); for(i=1;i<=a;i++) scanf("%d",&weight[i]); for(i=1;i<=a;i++) for(j=b;j>=weight[i];j--) //注意要从后向前 dp[j]=max(dp[j],dp[j-weight[i]]+value[i]); printf("%d\n",dp[b]); } } return 0;}
0 0
- hdu2602 Bone Collector(01背包问题)
- hdu2602 Bone Collector 01背包问题
- 01背包问题 hdu2602 Bone Collector
- hdu2602 Bone Collector(背包问题)
- Bone Collector hdu2602 01背包
- HDU2602:Bone Collector(01背包)
- hdu2602 bone collector 01背包
- hdu2602 Bone Collector (01背包)
- hdu2602 Bone Collector(01背包)
- HDU2602 Bone Collector 【01背包】
- HDU2602:Bone Collector(01背包)
- hdu2602 01背包Bone Collector
- hdu2602 Bone Collector--01背包
- HDU2602 Bone Collector(01背包)
- hdu2602 Bone Collector(背包)
- HDU2602 Bone Collector (简单01背包问题)
- HDU2602 Bone Collector 01背包问题 动态规划
- hdu2602 Bone Collector(背包问题)
- 简述JS作用域、作用域链和闭包
- LeetCode 104. Maximum Depth of Binary Tree
- WeX5--单页应用
- POJ1584 A Round Peg in a Ground Hole
- OpenStack 升级实践文章
- hdu2602 Bone Collector 01背包问题
- UWP Windows10开发获取设备位置(经纬度)
- 字符串算法——求最长公共子序列(摘自算法基础,没有代码)
- 专业的个人记帐软件 爱上记帐 1.0.1
- 二叉树的 前中后遍历
- json文件解析为字符串的操作
- BZOJ2792: [Poi2012]Well
- 【C语言简单说】八:分支结构之if(1)
- 前端开源项目持续集成三剑客