UVA 11020 - Efficient Solutions
题目链接
题意:每个人有两个属性值(x, y),对于每一个人(x,y)而言,当有另一个人(x', y'),如果他们的属性值满足x'
思路:由于每个人失去优势后,不可能再得到优势,所以失去优势就可以当成删去这些点,这样的话,就可以用一个multiset来维护点集,每次加入一个点,利用lowerbound,upper_...
分类:
其他好文 时间:
2014-08-24 01:53:11
阅读次数:
198
题目链接:Median做了整整一天T_T尝试了各种方法:首先看了解答,可以用multiset,但是发现java不支持;然后想起来用堆,这个基本思想其实很巧妙的,就是维护一个最大堆和最小堆,最大堆存放前半部分较小的元素,最小堆存放后半部分较大的元素,并且最大堆的所有元素小于最小堆的所有元素;保持最大堆...
分类:
其他好文 时间:
2014-08-18 23:21:23
阅读次数:
537
STL只规定接口和复杂度,对于具体实现不作要求。set大多以红黑树实现,但STL在标准规格之外提供了一个所谓的hash_set,以hash table实现。hash_set的接口,hash_table都提供了,所以几乎所有的hash_set操作都是直接调用hash_table的函数而已。
除了hash_set,还有hash_multiset,它们两个的关系就像set和multiset的关系,一个不允许键值重复,另外一个允许键值重复。其他实现一样。...
分类:
其他好文 时间:
2014-08-18 09:15:43
阅读次数:
267
multimap和map的关系和multiset和set关系一样,multimap允许有重复的键值,它在使用底层数据结构红黑树用,插入操作用的是insert_equal,而不是insert_unique。...
分类:
其他好文 时间:
2014-08-17 11:46:12
阅读次数:
262
STL中的set不允许键值重复,因此就有了multiset。multiset和set操作一样,功能一样,但是multiset允许键值重复,因此它们两个源代码几乎相同,只是在使用红黑树的插入操作时用的函数不一样而已。...
分类:
其他好文 时间:
2014-08-17 09:12:42
阅读次数:
322
关联式容器(associative containers)根据数据在容器中的排列特性,容器可分为序列式(sequence)和关联式(associative)两种。标准的STL关联式容器分为set(集合)和map(映射表)两大类,以及两大类的衍生体multiset(多键集合)和multimap(多键映...
分类:
其他好文 时间:
2014-08-11 00:04:41
阅读次数:
321
使用set或multiset之前,必须加入头文件
Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。
sets和multiset内部以平衡二叉树实现
1. 常用函数
1) 构造函数和析构函数
set c:创建空集合,不包含任何元素
set c(op):...
分类:
其他好文 时间:
2014-08-07 18:59:30
阅读次数:
331
使用STL容器 multiset
代码:
#include
#include
#include
using namespace std;
typedef multiset > intSet;
typedef multiset >::iterator intIter;
void findMaxNum(const vector &data,int k){
intSet Max;
...
分类:
其他好文 时间:
2014-08-04 14:20:17
阅读次数:
197
在stl中容器分为两大类,序列式容器和关联式容器。序列式容器:array、vector、heap、priority-queue、list、slist、deque、(stack、queue)最后两个是配接器关联式容器:RB-tree、set、map、multiset、multimap、hashtabl...
分类:
其他好文 时间:
2014-08-03 17:50:15
阅读次数:
232
题目:uva270 - Lining Up
解题思路:对于每个点都计算一下,它与其他点的斜率,这样就可以判断与这个点在同一条直线的点。每个点都这样做,维护最大值就可以了。
注意斜率不存在的情况。
找相同斜率的时候用了multiset。
代码:
#include
#include
#include
#...
分类:
其他好文 时间:
2014-07-30 10:01:35
阅读次数:
239