当前位置: 首页 > 编程日记 > 正文

9513 防空洞

时间限制:1000MS  内存限制:65535K
提交次数:104 通过次数:24

题型: 编程题   语言: G++;GCC

Description

    有一天,dragon123偷偷地拿锄头在学校里挖开了一个尘封已久的防空洞。他在这个防空洞里面找到许多贵重的东西:一些石头和一些液体。dragon123知道,只要他把这些石头和液体拿出去卖,那么就一定可以赚大钱。但是,他只有一个载重量为W的瓶子来装这些东西。防空洞里面有很多块石头,每块石头的重量为Wi,价值为Mi,但是石头不能够砸烂,否则就不值钱了。此外,洞里面很多种贵重的液体。对于某种液体,洞内存储了Wi重量,且这Wi重量液体的总价值为Mi。液体是可以部分放进瓶子里面的。也就是说,如果洞里面有Wi重量的某种液体,那么dragon123可以带走Ws(0<=Ws<=Wi)重量。给出洞里面石头和液体的信息,以及瓶子的载重量W,dragon123希望你帮忙计算出他能够带回东西的最大价值。




输入格式

    输入文件的第一行是n与W。n是洞里面贵重物品的数量总和(包括石头与液体)。W是瓶子的载重量。N (1 <= N <= 100) 且 W (0 <= W <= 50000)接下来有n行,每行都有3个数字a,b,c。如果c是0,那么就意味着这一行表示的物品是石头。那么a就是这块石头的重量,b就是这块石头的价值。如果c是1,那么就意味着这一行表示的物品是液体。那么a就是这种液体在山洞中的总储量,b就是山洞中所有的这种液体的总价值。



输出格式

    输出仅有一行,表示能够获得的最大价值。保留小数点后两位小数。



输入样例

3 150
100 100 0
100 100 0
130 10 1



输出样例

103.85



来源

PKKJ 

作者

a470086609

思路: 每个石头可以当做0-1背包物品来处理,每种液体当做多重背包物品来处理(二进制分解)

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <map>
using namespace std;
double dp[50005];
int n, w;
void onebag(int v, double u)
{for(int j = w; j >= v; --j)dp[j] = max(dp[j], dp[j - v] + u);
}
void compbag(int v, double u)
{for(int j = v; j <= w; ++j)dp[j] = max(dp[j], dp[j - v] + u);
}
void multibag(int v, double u)
{if(u >= w) compbag(1, u * 1.0 / v);else {double t = u * 1.0 / v;int k = 1;while(k < v) {onebag(k, k * t);v -= k;k = k << 1;}onebag(v, v * t);}
}
int main()
{int a, b, c;scanf("%d%d",&n, &w);memset(dp, 0, sizeof dp);for(int i = 0; i < n; ++i){scanf("%d%d%d", &a, &b, &c);if(!c) onebag(a, b);else multibag(a, b);}printf("%.2f\n", dp[w]);
}

转载于:https://www.cnblogs.com/orchidzjl/p/4618812.html

相关文章:

学习Mybatis与mysql数据库的示例笔记

目录结构&#xff1a; pom.xml文件 1 <?xml version"1.0" encoding"UTF-8"?>2 <project xmlns"http://maven.apache.org/POM/4.0.0"3 xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"4 xsi:schem…

Linux环境编程--进程通信

实验内容 编写程序实现进程的管道通信。用系统调用pipe( )建立一管道&#xff0c;二个子进程P1和P2分别向管道各写一句话&#xff1a;Child 1 is sending a message!Child 2 is sending a message! 父进程从管道中读出二个来自子进程的信息并显示&#xff08;要求先接收P1&…

你的编程能力从什么时候开始突飞猛进的?

如果提到程序员&#xff0c;很多人的印象是&#xff1a;呆板、木讷、不懂浪漫。如果提到代码&#xff0c;很多人的印象是&#xff1a;枯燥、繁琐、很难理解。但其实程序员的浪漫是普通人想象不到的&#xff0c;有一个网友为了追女生&#xff0c;以自己和女生为主角写了一个战棋…

超级 App 手机百度云端架构设计与个性化推荐

2015 年 6 月 28 日下午&#xff0c;百度与 InfoQ 携手举办了手机百度“云和端技术实践”沙龙活动。这是手机百度首次公开超级 App 背后的技术知识。活动分云端和客户端技术两个会场同时举办&#xff0c;吸引了众多技术爱好者前来学习交流。现场人数爆满&#xff0c;气氛热烈。…

Scala和范畴论 -- 对Monad的一点认识

背景 所有一切的开始都是因为这句话&#xff1a;一个单子&#xff08;Monad&#xff09;说白了不过就是自函子范畴上的一个幺半群而已&#xff0c;有什么难以理解的。第一次看到这句话是在这篇文章&#xff1a;程序语言简史(伪)。这句话出自Haskell大神Philip Wadler&#xff0…

Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid

perror&#xff1a;#include<stdio.h> #include<stdlib.h>定义函数 void perror(const char *s); perror ("open_port");函数说明 perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到标 准 错误 (stderr) 。参数 s 所指的字符…

DeepMind 打造 AI 游戏系统,可以玩扑克、国际象棋、围棋等,战斗力爆表

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 谷歌母公司 Alphabet 的人工智能实验室 DeepMind 长期以来一直投资于游戏人工智能系统。实验室的理念是&#xff0c;游戏虽然缺乏明显的商业应用&#xff0c;但却是认知和推理能力的独特相关挑战。这使…

WPF-动态加载

添加一个UserControl&#xff0c;命名为BusyIndicator&#xff0c;view为空&#xff0c;在其.cs文件中定义一个类 1 /// <summary> 2 /// 动态实体 3 /// </summary> 4 public class AnimationObject 5 { 6 publ…

ORA-06502 when awr report produce

最近在生成一套系统的AWR报告时出现了如下报错&#xff1a;ORA-06502: PL/SQL: numeric or value error: character string buffer too small&#xff0c;然后生成AWR报告的过程就终止了&#xff0c;查看生成的AWR报告&#xff0c;发现报告时不完整的&#xff0c;AWR报告到Comp…

进程间通信学习小结(共享内存)

要使用共享内存&#xff0c;应该有如下步骤&#xff1a;1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrm 共享内存可以说是最有用的进程间通信方式&#xff…

[ObjectiveC]NSDATA, NSDICTIONARY, NSSTRING互转

2019独角兽企业重金招聘Python工程师标准>>> NSDATA-->NSDICTIONARY NSDictionary *dict [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSDICTIONARY-->NSDATA NSData *data [NSJSONSerialization dat…

如流智会2021:技术结合场景 让企业知识懂员工

12月10日&#xff0c;“如流智会2021智能进化”在京举行&#xff0c;学界专家业界大咖云集荟聚&#xff0c;共商企业智能化转型之道。会上&#xff0c;百度集团副总裁、百度集团首席信息官&#xff08;CIO&#xff09;李莹表示&#xff1a;“智能经济时代&#xff0c;智能组织是…

WSFC 仲裁模型选择

今天我们再来详细讨论下关于WSFC的仲裁模型&#xff0c;主要仲裁模型的优缺点&#xff0c;应该如何去思考选择最佳合适方案WSFC引入仲裁&#xff0c;主要有两个目的跟踪群集当前运作票数是否符合仲裁模型协定&#xff0c;如果低于最少允许节点&#xff0c;则决定关闭群集&#…

关于进程间通信的学习心得

进程&#xff1a;进程是指独立地址空间的指令序列进程的五种状态&#xff1a;新建&#xff0c;就绪&#xff0c;运行&#xff0c;睡眠&#xff0c;僵死进程间通信&#xff1a;是不同进程之间进行一些"接触"&#xff0c;这种接触有简单&#xff0c;有复杂。机制不同&a…

Go modules基础精进,六大核心概念全解析(上)

Go 语言做开发时&#xff0c;路径是如何定义的&#xff1f;Go Mudules又为此带来了哪些改变&#xff1f;本文将会全面介绍Go Modules六大核心概念&#xff0c;包括了设计理念与兼容性原则等&#xff0c;掌握这些技术点对于管理和维护Go 模块有重要价值。 在Go Modules 的前世今…

PARAMETERS 指令

语法: PARAMETERS <p> [DEFAULT <f>] [LOWER CASE] [OBLIGATORY] [AS CHECKBOX] [RADIOBUTTON GROUP <rad>] 实例: PARAMETERS: NAME(8), AGE TYPE I, BIRTH TYPE D. OBLIGATORY:强制要求输入, 屏幕上会出現一个“√” , 使用者必须要输入才可。 AS C…

阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器

天猫精灵X1的升级版X2没有预期出现&#xff0c;而人机交互系统AliGenie升级到最新的2.0版本&#xff0c;功能强大。 3月22日&#xff0c;阿里巴巴人工智能实验室总经理浅雪&#xff08;陈丽娟&#xff09;发布AliGenie2.0系统&#xff0c;它最大的改进是在1.0的基础上增加了视觉…

Centos5.6 VNC安装配置【无错版】

不严格按本步骤就会出现VNC桌面花屏&#xff0c;就是桌面分离为一层一层的。。。 ---------------------------------------- 先装X window http://blog.csdn.net/21aspnet/article/details/6997549 ---------------------------------------- Centos5.6 VNC安装配置 一、检查是…

关于IOS的屏幕适配(iPhone)——资源适配

IOS的屏幕适配几乎不需要大量的代码操作&#xff0c;更多的时间我们只是动动鼠标选择一下就搞定。可以苹果在这方面做的还是比较人性的&#xff0c;解放了开发者。 首先来说说Iphone这几种屏&#xff08;由于最近做的是iPhone APP还未涉及到iPad&#xff0c;将来涉及到iPad时会…

Go modules基础精进,六大核心概念全解析(下)

Go 语言做开发时&#xff0c;路径是如何定义的&#xff1f;Go Mudules又为此带来了哪些改变&#xff1f;本文将会全面介绍Go Modules六大核心概念&#xff0c;包括了设计理念与兼容性原则等&#xff0c;掌握这些技术点对于管理和维护Go 模块有重要价值。 在上篇中&#xff0c;我…

京东区块链白皮书解读, 做“链接器”,一次技术宣言

前天&#xff0c;京东对外发布了《京东区块链技术白皮书(2018)》。 昨天&#xff0c;京东金融发布了旨在帮助中小银行提升零售信贷效率的产品“北斗”。目前&#xff0c;“北斗”已经接入包括江苏银行、南京银行、包商银行在内的近30家银行。京东金融还与近30家商业银行共同发起…

xauth: (stdin):1: bad display name LSPPC-Lenny:1 in add command

启动vnc4server之后出现如下错误提示&#xff1a;LSPPC-Lenny:~# vnc4serverxauth: (stdin):1: bad display name "LSPPC-Lenny:1" in "add" command New ‘LSPPC-Lenny:1 (root)’ desktop is LSPPC-Lenny:1 Starting applications specified in /root/…

使用 Python 和 OpenCV 构建 SET 求解器

作者 | 小白来源 | 小白学视觉小伙伴们玩过 SET 吗&#xff1f;SET 是一种游戏&#xff0c;玩家在指定的时间竞相识别出十二张独特纸牌中的三张纸牌&#xff08;或 SET&#xff09;的模式。每张 SET 卡都有四个属性&#xff1a;形状、阴影/填充、颜色和计数。下面是一个带有一些…

Delphi XE5 常用功具与下载

1.Delphi XE5 正式版http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.isohttp://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_upd1_win.iso2. cnpack 助手工具http://www.cnpack.org/download/unstable/CnWizards_1.0.1.665_…

maven学习(4)-Maven 构建Web 项目

紧接着上一节(3)&#xff0c;现在maven新建web项目&#xff0c;user-web。模拟一个用户登录的需求&#xff1a; 工程结构&#xff1a; pom.xml: <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

如何查看linux版本

1. 查看内核版本命令&#xff1a; 1) [rootq1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompilecrowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 2) [rootq1test01 ~]# uname -a …

存储过程由结构表生成表

结构表 CREATE TABLE JGTB5001( ZDM VARCHAR2(30 BYTE), HZM VARCHAR2(100 BYTE), LX VARCHAR2(50 BYTE), JD VARCHAR2(20 BYTE), WBKLX VARCHAR2(100 BYTE), FUNCTIONNAME VARCHAR2(50 BYTE), FUNCTIONPARAMETER VARCHAR2(50 BYTE)); 生成的TB表CREATE OR REPLACE PROCEDURE P…

好礼相送|CSDN云原生 Meetup 成都站报名热烈启动,12.18见!

伴随着容器、Kubernetes及微服务等技术热度的持续攀升&#xff0c;云原生正以不可撼动之势&#xff0c;剑指云计算的下一个十年。12月18日&#xff0c;CSDN将在成都举办第三场云原生线下Meetup。在这里&#xff0c;您可以了解各大领先企业的云原生落地实践&#xff0c;与众多云…

vue-music 音乐网站

在学习完vueJS,一直想做个项目来锻炼一下,选来选去&#xff0c;还是做个网易云音乐&#xff0c;其间遇到了很多坑,也逐渐接受了vue这种组件化的思想以及从Dom操作转换为用数据去驱动视图。并且在某部分基础组件上借鉴(搬运)了elementUI的源码(不过elementUI写的是真好) 技术栈 …

shell环境变量

shell环境变量 环境变量 还记得上一章里面﹐我曾经提到过﹕当我们登入系统的时候﹐首先就获得一 shell﹐而且它也占据一个行程&#xff08;进程&#xff09;﹐然后再输入的命令都属于这个 shell 的子程序&#xff08;子进程&#xff09;。如果您学习够细心﹐不难发现我们的 sh…