C++ STL set和multiset的使用 std::set s;那个s这个对象里面存贮的元素是从小到大排序的,(因为用std::less作为比较工具。) 1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样。所有的操作的都是严格在l... ...
分类:
编程语言 时间:
2016-08-26 21:14:43
阅读次数:
281
字典树。 比较经典的题目了。把每一个数字都插入到字典树中,询问的时候如果$x$的第$i$位是$p$,那么尝试着在字典树上往$pXOR1$的节点走下去,没有$pXOR1$节点的话再走$p$的。删除操作的话可以记录一下每一个节点出现了几次,$Insert$的时候$s[p].cnt++$,$Delete$ ...
分类:
其他好文 时间:
2016-08-26 10:31:16
阅读次数:
129
看了好多人写的对map的排序 看得不太懂吧 自己写一些
map set multiset 三个容器都是 放进去 都是事先都要排序的 所以 erase insert find操作都是二分 复杂度都是logn
而 list vector 都是 n
注意的是set不能放进两个相同的元素 而vector是唯一个有下标的容器 map是独有的放进二元关系的容器
map如果放进去的是两个...
分类:
编程语言 时间:
2016-08-24 15:53:54
阅读次数:
271
题目链接:Vasiliy's Multiset 题意:这里有一个set容器,有三种操作,+ num, - num, ? num,分别代表往容器里加上num,或者拿走num,或着从容器里找一个数temp使得temp^num的值最大。输出这个最大值。 思路:对于XOR操作,一般都要拆位考虑,拆完之后用T ...
分类:
其他好文 时间:
2016-08-15 20:34:20
阅读次数:
127
题意:最开始的时候有一个集合,集合里面只有一个元素0,现在有q次操作,操作分为3种: + x: 表示向集合中添加一个元素x - x:表示删除集合中值为x的一个元素 ? x:表示查询集合中与x异或的最大值为多少 析:这是一个字典树的应用,不过确实没看出来。。。。主要思想是这样,先用10进制数,转成二进 ...
分类:
其他好文 时间:
2016-08-14 22:17:49
阅读次数:
212
boost.unordered在C++标准容器std::set,std::multiset,std::map和std::multimap的基础上多实现了四个容器:boost::unordered_set,boost::unordered_multiset,boost::unordered_map和b ...
分类:
其他好文 时间:
2016-08-14 10:18:55
阅读次数:
131
A题 Beru-taxi Interesting drink Hard problem Vasiliy's Multiset ...
分类:
其他好文 时间:
2016-08-13 18:12:49
阅读次数:
179
题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 题解: trie树xjb搞就行,每次要贪心,尽量满足高位为1. 1 #include<bits/s ...
分类:
其他好文 时间:
2016-08-12 19:46:50
阅读次数:
146
题意:给定 n 个矩形是a*b的,问你把每一块都分成一样的,然后全放一块,高度都是1,体积最大是多少。 析:这个题,当时并没有完全读懂题意,而且也不怎么会做,没想到就是一个暴力,先排序,先从大的开始选,如果大,那么数量少,如果小,数量就多, 用一个multiset来排序,这样时间复杂度会低一点,每一 ...
分类:
其他好文 时间:
2016-08-10 22:51:18
阅读次数:
237
set容器内的元素会被自动排序,set与map不同,set中的元素即是键值又是实值,set允许两个元素有相同的键值。不能通过set的迭代器去修改set元素,原因是修改元素会破坏set组织。当对容器中的元素进行插入或者删除时,操作之前的所有迭代器在操作之后依然有效。 multiset特性及用法和set ...
分类:
编程语言 时间:
2016-08-07 18:32:17
阅读次数:
578