2602 ACM 杭电 骨头容器 01背包
题意:装骨头的容器大小固定,有一堆骨头,已知骨头的价值和大小,在不超过容积大小的情况下,问:所装骨头的最大价值?
思路:典型的01背包问题,不需要有任何的变动。
模板:
for(int j=v;j>=a[i].w;j–) //v是容积
{
dp[j]=max(dp[j],dp[j-a[i].w]+a[i].val);
}
注意:
1 数组dp的必须初始化(memset( dp,0,sizeof(dp))),还要够大,但是用int 定义就好了
2 输出结果后要换行(\n)
3 要勾选C++才能过
#include<stdio.h>
#include<string.h>
#define max(a,b) a>b?a:b
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int N,V,val[1002],vol[1002],total=0,dp[50050];
memset( dp,0,sizeof(dp));
scanf("%d%d",&N,&V);
for(int i=0;i<N;i++)
{
scanf("%d",&val[i]);
total+=val[i];
}
for(int i=0;i<N;i++)
scanf("%d",&vol[i]);
for(int i=0;i<N;i++)
for(int j=V;j>=vol[i];j--)
dp[j]=max(dp[j],dp[j-vol[i]]+val[i]);
printf("%d\n",dp[V]);
}
}
2602 ACM 杭电 骨头容器 01背包的更多相关文章
- 2955 ACM 杭电 抢银行 01背包 乘法
题意: 强盗抢银行,在不被抓住的情况下,想尽量多的偷点钱.已知各个银行的金钱和被抓的概率,以及强盗能容忍的最大不被抓的概率(小于等于该概率才能不被抓),求最多能抢到钱? 并不是简单的01背包问题? 1 ...
- 2159 ACM 杭电 杀怪 二维费用的背包+完全背包问题
题意:已知经验值,保留的忍耐度,怪的种数和最多的杀怪数.求进入下一级的最优方案. 思路:用二维费用的背包+完全背包问题 (顺序循环)方法求解 什么是二维费用的背包问题? 问题: 二维费用的背包问题是指 ...
- 杭店 ACM 1864 最大报销额 01背包
![勾选C++才能过 题意: 先规定可以报销一定额度的发票,物品类型有A,B,C,三种.要求每张发票总额不得超过1000元,单项物品不得超过600.求报销的最大额 分析: 先找到合格的发票,然后再挑选 ...
- 3466 ACM Proud Merchants 变形的01背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:假设你有M元,已经Pi,Qi,Vi(i为角标,1<i<N),当M>Qi,时才 ...
- 5410 ACM 杭电 01+完全背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5410 虽然是英文题目:但还是很好理解的.明显的背包问题 思路:如果你能想到把题目拆分成小问题,就会简单许多 ...
- ACM 杭电HDU 2084 数塔 [解题报告]
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- 2554 ACM 杭电 数学
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2554 中文题目,题意易懂.但是本题涉及到很强的数学思维. 思路:看了题意后:我的第一反应是除了 n=1,n ...
- 1013 ACM 杭电 root
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1013 题意:求两个数的根 如: 12->3,99->9,80->8 注意题目没有限制数的 ...
- 2852 ACM 杭电 KiKi's K-Number 0 1 2
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852 题意:三种操作: 0 插入 1 删除 2 查找比a大的第k个数. 思路:看了大神都是用树状数组写的, ...
随机推荐
- 解决linux下svn update 产生Node remains in conflict的问题
提交一个文件 服务器上死活更新不了 是因为有冲突,解决办法:svn revert --depth=infinity /var/SvnProject/APITest 再次执行更新 进有改动的文件夹,更新 ...
- Python老男孩
1.可以自己编写模块,但注意:如果想要调用该模块,需要将该模块放到site-packages目录下,或将该模块放在执行程序的路径下. 2.pyc文件是什么? 集合: set 集合可以去重:做交集.并集 ...
- C++ Primer 笔记——控制内存分配
1.当我们使用一条new表达式时,实际执行了三步操作. new表达式调用一个名为operator new ( 或者operator new[] ) 的标准库函数.该函数分配一块足够大的,原始的,未命名 ...
- Canvas锯齿问题
canvas的宽高必须通过HTML属性指定,不能通过CSS指定,否则会有锯齿 这个是通过CSS定义宽高,绘制的图形 #myCanvas{ background: black; height: 800p ...
- C#通讯录——Windows Form Contact List
C#通讯录 Windows Form Contact List 主窗口 using System; using System.Collections.Generic; using System.Com ...
- 构造函数与 new 命令
虽然不同于传统的面向对象编程语言,但是JavaScript具有很强的面向对象编程能力.本章介绍JavaScript如何进行“面向对象编程”. 对象的概念 “面向对象编程”(Object Oriente ...
- [转] js对象监听实现
前言 随着前端交互复杂度的提升,各类框架如angular,react,vue等也层出不穷,这些框架一个比较重要的技术点就是数据绑定.数据的监听有较多的实现方案,本文将粗略的描述一番,并对其中一个兼容性 ...
- 如何区分oracle服务器、oracle客户端、plsql?
大家在安装oracle数据库的时候,是不是有很多区分不清的概念,以至于束手无策呢?现在有一个问题,就是怎么区分oracle服务器.oracle客户端.plsql三者的概念?我想,新手在安装的时候可能会 ...
- react-native-video
<Video ref='videoPlayer' source={{uri:'http://www.thinktown.com/video/th.mp4'}} //网络视频 //source={ ...
- xcode svn commit is not under version control 和 git常用指令
使用Xcode提交一个第三方库时,由于包含资源文件,总是提交不了,提示报错:XXX commit is not under version control (1) 网上查了下,得知 xcode对于sv ...