Wiki with Herbal Medicine
Problem H. Wiki with Herbal Medicine
Input file: standard input Time limit: 1 second
Output file: standard output Memory limit: 256 megabytes
题目描述
前方高能,又见采草药!
Wiki是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为
师。
Wiki觉得上一次拜访的医师有点水,为此,他经过多方打探,终于找到了一个口碑与医术极佳的医师拜
师学艺。当然,医师为了判断他的资质,同样也给他出了一道难题。
医师把他带到一个到处都是草药的山洞里对他说: "孩子,这个山洞里有n种不同的草药,每一株草药都
有一定的体积,每一株也有它自身的价值。我会给你m个体积都为v的背篓,你可以采到一些草药。如果
你是一个聪明的孩子,请满足以下几个要求:
(1)必须正好把这m个背篓放满药材(每个背篓里面的药材体积之和恰好等于v);
(2)每种草药有无限株,每种药材最多只能放一个在每个背篓里,每种药材可以放在多个背篓里面(当
然,草药是不能切分的),每个背篓里面可以放多种药材, 但是任意两个背篓里面的药材种类不能完全相
同;
(3)在满足上述条件的前提下,请计算出能采到的药材价值之和(药材价值之和等于m个背篓里面的药材
价值加起来的总和)。
如果你是Wiki,你能完成这个任务吗?
Input
第 一 行 三 个 正 整 数n; m; v, 分 别 表 示 山 洞 里 面 药 材 的 种 类, 背 篓 的 个 数 以 及 每 个 背 篓 的 体
积(1 <= n <= 200; 1 <= m <= 50; 1 <= v <= 5000)
接下来输入n行wi; ci(1 <= wi <= 5000; 1 <= ci <= 10000),表示每种药材的体积和其对应的价值
Output
输出1个整数,表示在满足医师规定的条件下, Wiki可以采到草药的最大总价值
Sample
standard input | standard output |
5 2 10 3 12 7 20 2 4 5 6 1 1 |
57 |
思路:
01背包求前k大值之和,注意初始化,体积恰好为v
#include <iostream>
#include <algorithm>
#include <cstring> using namespace std ; const int N = , M = , C = ; int f[N][M],v[C],w[C] ;
int n,m,V ; int main(){
cin >> n >> m >> V ; memset(f,,sizeof f) ;
f[][] = ;//f[j][k],表示体积恰好为j时的第k大值
for(int i=;i<=n;i++){
cin >> v[i] >> w[i] ;
} for(int i=;i<=n;i++){
for(int j=V;j>=v[i];j--){
int now[],c1=,c2=,idx= ;//now缓存合并最大k值的结果,避免计算的时候出现串扰
while(c1+c2<=m+){
if(f[j][c1]>f[j-v[i]][c2] + w[i]){
now[++idx] = f[j][c1++] ;
}else{
now[++idx] = f[j-v[i]][c2++] + w[i] ;
}
}
for(int h=;h<=m;h++){
f[j][h] = now[h] ;
}
}
}
int ans = ;
for(int i=;i<=m;i++){
ans += f[V][i] ;
} cout << ans << endl ; return ;
}
Wiki with Herbal Medicine的更多相关文章
- Chinese culture
文房四宝 笔墨纸砚是中国古代文人书房中必备的宝贝,被称为“文房四宝”.用笔墨书写绘画在 中国可追溯到五千年前.秦(前221---前206)时已用不同硬度的毛和竹管制笔:汉代(前206—公元220) ...
- 烂泥:wiki系统confluence5.6.6安装、中文、破解及迁移
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它 ...
- Wiki安装(PHP +Sqlite+Cache)
前期准备 PHP http://windows.php.net/download WinCache Extension for PHP URL:http://sourceforge.net/pro ...
- Confluence Wiki -- 页面限制
Confluence Wiki 中 [页面设置] 应该如何理解? 当一个用户有这个权限后,这个用户可以对一个页面做限制,可以限制这个页面不能被其他用户浏览或编辑: 反之,如果没有这个权限,那么这个用户 ...
- working with fitnesse wiki pages
fitnesse提供一个简单易用的wiki创建一个web页面用于测试.测试页面有一个button,允许所有的测试在这个页面运行,因此任何人在任何时间都可以去这个页面点击这个按钮,查看测试是否通过.fi ...
- Wiki设置
在Wiki安装完成后,就wiki会提示下载LocalSettings.php文件,这是wiki的设置文件,当我们要对wiki进行设置的时候,就需要用到这个文件. 下面对常用的操作设置做简要讲解: —— ...
- Wiki安装
我们推荐使用Mediawiki. MediaWiki是基于php环境的,所以如果需要使用该类wiki,就要先部署php的环境. wiki下载: https://www.mediawiki.org/wi ...
- Wiki介绍
Wiki是一种高效的知识管理系统. 我们可以使用wiki构建自己的个人知识管理系统.
- iosOpenDev-install 失败官方wiki无法解决看这里(尝试有效)
https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot http://blog.csdn.net/bluesky_03/article/det ...
随机推荐
- 以Unicode(UTF-16 LE)编码保存文本
1. 以二进制方式打开文件,写入BOM头 FILE* pFile = nullptr; _wfopen_s(&pFile, szLogFilePath, L"wb"); / ...
- 【数据结构】7.java源码关于LinkedList
关于LinkedList的源码关注点 1.从底层数据结构,扩容策略2.LinkedList的增删改查3.特殊处理重点关注4.遍历的速度,随机访问和iterator访问效率对比 1.从底层数据结构,扩容 ...
- WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片
原文:WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 我们知道,在 WPF 中的坐标单位不是屏幕像素单位,所以如果需要知道某个控件的像素尺寸,以便做一些与屏幕像素尺寸相关 ...
- Golang/Go goroutine调度器原理/实现【原】
Go语言在2016年再次拿下TIBOE年度编程语言称号,这充分证明了Go语言这几年在全世界范围内的受欢迎程度.如果要对世界范围内的gopher发起一次“你究竟喜欢Go的哪一点”的调查,我相信很多Gop ...
- 变量.argsort()的用法
a=[1,2,5,9,7,3]a=np.array(a)order = a.argsort() # 从小到大排序,并返回索引值print('order=',order)order1= a.argsor ...
- Java之路---Day06
2019-10-20-23:13:52 目录内容: 1.Scanner类 2.匿名对象 3.Random类 4.对象数组 Scanner类 功能:实现键盘输入数据到程序中 使用步骤: 1.导包: im ...
- 一个牛逼的 Python 调试工具PySnooper
原文转自:https://mp.weixin.qq.com/s/OtLr-cNethboMgmCcUx2pA PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何 ...
- Java知识回顾 (15) 文档注释
说明注释允许你在程序中嵌入关于程序的信息. 你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中,使你更加方便的记录你的程序信息. javadoc 标签 标签 描述 示例 @auth ...
- 英语DIAMAUND钻石指坚硬不可侵犯的物质
首先谈谈钻石和金刚石的名称.金刚石是一种天然矿物,是钻石的原石.习惯上人们常将加工过的金刚石称为钻石,而未加工过的称为金刚石(当然,有的金刚石不用加工便可应用).钻石是那些达到宝石级别的金刚石晶体切磨 ...
- weblogic unable to get file lock问题
非正常结束weblogic进程导致weblogic无法启动 由于先前服务器直接down掉了,所有进程都非正常的进行关闭了,也就导致了下次启动weblogic的时候报了以下错误: <2012-3- ...