UVa 11136 - Hoax or what

原创 2015年11月20日 08:00:32

題目:一個商場促銷,有一個購物單的收集箱,每天會從裡面拿出最大和最小的單子,

            把它門的差值返還給最多的那個人,每天不清理箱子,問一共給出多少錢。

分析:數據結構。直接利用平衡二叉樹(multiset)即可。

說明:STL基本都沒用過╮(╯▽╰)╭。

#include <cstdio>
#include <set>

using namespace std;

int main()
{
	int n, m, k;
	while (~scanf("%d",&n) && n) {
		long long ans = 0LL;
		multiset<int> bills;
		
		while (n --) {
			scanf("%d",&m);		
			for (int i = 0; i < m; ++ i) {
				scanf("%d",&k);
				bills.insert(k);
			}
			
			if (bills.size() > 0) {
				ans += *(-- bills.end()) - *(bills.begin());
				bills.erase(bills.begin());
				if (bills.size() > 0)
					bills.erase(-- bills.end());
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

UVa 11136 Hoax or what (multiset or 优先队列)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&p...
  • synapse7
  • synapse7
  • 2014年03月05日 10:48
  • 836

UVA 11136 Hoax or what(Multiset)

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem...
  • u014357885
  • u014357885
  • 2015年09月20日 20:23
  • 288

UVA 11136 Hoax or what

 题目大意:        活动持续  N  天,每天放入 若干账单,每天结束 时取出最大最小的两个账单 ,将两者的 差作为奖品价值,问活动期间奖品的总价值。 解题思路:       网上...
  • u013967323
  • u013967323
  • 2014年06月12日 10:40
  • 382

UVa 11136 - Hoax or what

因为要排序而且要两头取,所以这里用到了STL里面的可重集multiset。做出来2.412秒,看有的大神只花了0.362秒,真心不知道怎么做的……...
  • crazysillynerd
  • crazysillynerd
  • 2015年02月23日 17:15
  • 320

UVA 11136——Hoax or what

题意:超市搞促销,每天都从箱子里拿出最大和最小的差作为促销金额,给出n天的促销情况,问最后总的促销金额。 思路:set构造,当有小票的时候放入set,每天结束的时候取出头和尾即可。 ...
  • bobodem
  • bobodem
  • 2016年03月21日 16:56
  • 224

uva 11136 Hoax or what

题意:每一次取序列中最大值和最小值,取他们的差值,计算n次后求差值的和。 因为是动态的删除最大最小值,那么容易想到利用堆,而需要两个最值,那么就用一个最小堆和一个最大堆,维护这两个堆就可处理,由于C...
  • zamac1993
  • zamac1993
  • 2013年11月10日 22:34
  • 237

UVa:11136 Hoax or what

优先队列。使用一个最大堆和最小堆即可。但是注意最大堆里删除掉的了,可能在最小堆里出现。所以需要保证每次弹出的在另一个堆里没有删掉。所以加两个数组判断这个地方。答案要用longlong。 #includ...
  • kkkwjx
  • kkkwjx
  • 2014年03月10日 17:41
  • 415

UVA - 11136 Hoax or what

题意:超市每次从票箱选出最大和最小的账单,将(Max-Min)给Max的人,问n天后超市付出多少钱 思路:要省去排序的容器就有set和multiset,为了储存重复的数字,所以采用multiset ...
  • u011345136
  • u011345136
  • 2014年02月21日 20:17
  • 1225

UVA 11136 Hoax or what 【multiset】

题意:每天放进箱子里一些数字,之后取出箱子中最大和最小的两个数,得分为两者的差,求n天后的得分总和。 思路:使用multiset,因为其内部是排好序的,直接取,然后删除即可。#pragma warn...
  • u010276926
  • u010276926
  • 2015年07月17日 11:36
  • 413

UVA 11136 Hoax or what(multiset)

set实质上是颗BST。#include #include #include #include #include using namespace std; multiset s; multiset::...
  • qq_33901573
  • qq_33901573
  • 2016年11月01日 19:45
  • 58
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVa 11136 - Hoax or what
举报原因:
原因补充:

(最多只允许输入30个字)