送花(洛谷 2073)

题目背景

小明准备给小红送一束花,以表达他对小红的爱意。他在花店看中了一些花,准备用它们包成花束。

题目描述

这些花都很漂亮,每朵花有一个美丽值W,价格为C。

小明一开始有一个空的花束,他不断地向里面添加花。他有以下几种操作:

操作 含义

1 W C 添加一朵美丽值为W,价格为C的花。

3 小明觉得当前花束中最便宜的一朵花太廉价,不适合送给小红,所以删除最便宜的一朵花。

2 小明觉得当前花束中最贵的一朵花太贵,他心疼自己的钱,所以删除最贵的一朵花。

-1 完成添加与删除,开始包装花束

若删除操作时没有花,则跳过删除操作。

如果加入的花朵价格已经与花束中已有花朵价格重复,则这一朵花不能加入花束。

请你帮小明写一个程序,计算出开始包装花束时,花束中所有花的美丽值的总和,以及小明需要为花束付出的总价格。

输入输出格式

输入格式:

 

若干行,每行一个操作,以-1结束。

 

输出格式:

 

一行,两个空格隔开的正整数表示开始包装花束时,花束中所有花的美丽值的总和。以及小明需要为花束付出的总价格。

 

输入输出样例

输入样例#1:
1 1 1
1 2 5
2
1 3 3
3
1 5 2
-1
输出样例#1:
8 5

说明

对于20%数据,操作数<=100,1<=W,C<=1000。

对于全部数据,操作数<=100000,1<=W,C<=1000000。

分析:我们要维护当前队列的最小值和最大值,但一旦删除某个数字时,我们的最大最小值就无法维护,所以我们要使队列有序,但不断排序的话肯定会超时,所以用set优化。
代码:
#include<cstdio>
#include<iostream>
#include<set>
#define M 1000010
using namespace std;
set<int> q;
int bea[M],sum_m,sum_v;
int read()
{char c=getchar();int num=0,flag=1;while(c<'0'||c>'9'){if(c=='-')flag=-1;c=getchar();}while(c>='0'&&c<='9'){num=num*10+c-'0';c=getchar();}return num*flag;
}
int main()
{set<int>::iterator it;while(1){int f=read();if(f==-1)break;if(f==1){int mei=read(),val=read();if(bea[val])continue;else{bea[val]=mei;q.insert(val);sum_m+=mei;sum_v+=val;}}else if(f==2&&!q.empty()){it=q.end();it--;sum_m-=bea[*it];sum_v-=*it;q.erase(it);bea[*it]=0;}else if(!q.empty()){it=q.begin();sum_m-=bea[*it];sum_v-=*it;q.erase(it);bea[*it]=0;}}printf("%d %d",sum_m,sum_v);return 0;
}
View Code

 

转载于:https://www.cnblogs.com/harden/p/5797050.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nfs服务搭建

service nfs restart nfs服务重启 showmount -e ip地址 查看服务开启状态&#xff1a; chkconfig --list nfs 服务配置&#xff1a; #vim /etc/exports /data/ 192.168.1.145/24(rw,sync) /data/ *(rw,sync,all_squash) 服务重载&#xff0c;不需要restart #/etc/init.d…

爬虫工作量由小到大的思维转变---<第二十五章 Scrapy开始很快,越来越慢(追溯篇)>

爬虫工作量由小到大的思维转变---&#xff1c;第二十二章 Scrapy开始很快,越来越慢(诊断篇)&#xff1e;-CSDN博客 爬虫工作量由小到大的思维转变---&#xff1c;第二十三章 Scrapy开始很快,越来越慢(医病篇)&#xff1e;-CSDN博客 前言: 之前提到过,很多scrapy写出来之后,不…

也许你需要点实用的-Web前端笔试题

之前发的一篇博客里没有附上答案&#xff0c;现在有空整理了下发出来&#xff0c;希望能帮助到正在找工作的你&#xff0c;还是那句话&#xff1a;技术只有自己真正理解了才是自己的东西&#xff0c;共勉。 Web前端笔试题 Htmlcss 1.对WEB标准以及w3c的理解与认识。 标签闭合&a…

HTML5的touch事件

HTML5中新添加了很多事件&#xff0c;但是由于他们的兼容问题不是很理想&#xff0c;应用实战性不是太强&#xff0c;所以在这里基本省略&#xff0c;咱们只分享应用广泛兼容不错的事件&#xff0c;日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件…

神经网络的介绍

对于线性的定义&#xff1a;满足可加性和齐次性。

iOS 集成银联支付

转自&#xff1a;http://www.jianshu.com/p/92d615f78509 当初集成支付宝的时候 觉得见了这么丑的代码 加上这么难找的下载地址 在配上几乎为零的文档 寒哥就要吐血了下午去集成银联 才知道 血吐的早了 下载地址 https://open.unionpay.com/upload/download/Development_kit854…

pytorch入门使用

1、创建张量&#xff1a; 2、张量的方法和属性&#xff1a; (1) t1.item()只能用于张量中只有一个数据的情况下获取张量内的值 &#xff08;2&#xff09;numpy() 将tensor转换为numpy数组 t2 torch.tensor([[[1, 2]]]) print(t2) print(t2.numpy()) 输出结果&#xff1a;…

.net core学习

http://www.cnblogs.com/artech/ http://www.blogs8.cn/posts/AA0E630 http://pan.baidu.com/s/1bo4fJ47 http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-1-getting_started.html转载于:https://www.cnblogs.com/jiangjing/p/5804542.html

Tomcat中组件的生命周期管理(三)

本文主要目的是自定义举例分析Catalina内部生命周期管理的运作方式以及拿内部具体源码来具体分析 假设我们有一台电脑由主机(我们用cpu表示&#xff09;和显示器构成&#xff0c;那么我们要运用上篇文章学到的内容&#xff0c;来管理整个电脑的启动和关闭&#xff0c;先看我们对…

Python rang()函数

返回类型为迭代器 r range(11) print(r) 若输出r中的值&#xff0c;需要调用list(r) print(list(r)) 输出&#xff1a; 方法二: #二&#xff1a; r1 range(1,10) print(list(r1)) 方法三&#xff1a; #三&#xff1a; r2 range(1,10,2) print(list(r2)) 判断某一个数是…

Python 中的 while循环 和 for... in ...循环

for item in Python:print(item, end) print()for item in range(10):print(item, end)# 当不需要自定义变量时候&#xff0c;可以用”_“代替 for _ in range(5) :print(hello world)# 计算累加和 sum 0 for i in range(1,101) :if i%20 :sum i print(sum) While: a 0 while…

css笔记——css 实现自定义按钮

css实现自定义按钮的样式实际上很早就有了&#xff0c;只是会用的人不是很多&#xff0c;里面涉及到了最基础的css写法&#xff0c;在火狐中按钮还是会显示出来&#xff0c;这时需要将i标签的背景设置为白色&#xff0c;同时z-index设置比input高一些&#xff0c;这样才可以把按…

Hibernate中主键生成策略

主键生成策略 increment identity sequence native uuid assigned 1) increment 由hibernate完成 主键递增&#xff0c; 原理&#xff1a;select max(id) , insert时max(id)1 &#xff0c;完成主键递增 优点&#xff1a;跨数据库 缺点&#xff1a;多线程并发访问问题&#xff0…