首先输入一个数字代表有n个样例

接下来的三行

第一行输入n  和  v,代表n块骨头,背包体积容量为v。

第二行输入n块骨头的价值

第三行输入n块骨头的体积

问可获得最大的价值为多少

核心:关键在于dp【j】=max(dp[j],dp[j-w[i]]+v[i]) 的状态转移!!

背包最多能装下题目中所给的骨头,如体积为10的背包能装下体积分别为5和4的体积一块,

但最后其实背包还剩余了体积为1的位置没有讨论,则通过 j-- 进行剩余补充讨论。

在体积不断减小的同事每次都对目前这个这个体积(目前状态)下最多能装多少已知的骨头,

并通过对比之前的数据(上一次的状态)取较大值。即可获得该目标体积的最大值!!

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <stdio.h>
#define ll long long
using namespace std;
int a[];
int b[];
int dp[];
int main()
{
int m,n,k,t;
cin>>t;
while(t--)
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(dp,,sizeof(dp));
cin>>m>>n;
for(int i=;i<=m;i++)
{
cin>>a[i];
}//价值
for(int i=;i<=m;i++)
{
cin>>b[i];
}//体积
for(int i=;i<=m;i++)
{
for(int j=n;j>=;j--)
{
if(j>=b[i])
dp[j] = max(dp[j],dp[j-b[i]]+a[i]);
}
}
cout<<dp[n]<<endl;
}
return ;
}

最新文章

  1. 【2016-11-2】【坚持学习】【Day17】【通过反射自动将datareader转为实体info】
  2. 前端scss的使用及gulp发布方式
  3. hdu Proud Merchants
  4. HLS视频直播
  5. Codeforces Gym 100015C City Driving 离线LCA
  6. jQery无缝滚动效果
  7. OOP—还原被遮掩的继承名称
  8. centos 忘记 root 密码
  9. Java中的内存泄漏问题
  10. Android中View绘制优化二一---- 使用&lt;include /&gt;标签复用布局文件
  11. Cocos2d-x在Android在竖屏切换
  12. directive(指令里的)的compile,pre-link,post-link,link,transclude
  13. ASP.NET在母版页或内容页上获取控件ID
  14. 37、mysql初识
  15. Codeigniter使用HMVC(一)
  16. centos7.2下nginx安装教程
  17. 【JLOI 2012】时间流逝(期望,树上高斯消元)
  18. Plupload上传插件中文帮助文档
  19. ansj分词史上最详细教程
  20. tyvj P2018 「Nescaf&#233;26」小猫爬山 解题报告

热门文章

  1. React - S1
  2. 【BZOJ2338】[HNOI2011]数矩形 几何
  3. vs添加对dll的引用
  4. BZOJ2759: 一个动态树好题
  5. JS中奇葩的假值
  6. python 实用pickle序列化
  7. Protobuf入门实例
  8. 页面渲染——简化paint复杂程度和区域
  9. v-for指令用法一
  10. python 函数定义