BitSet 是个好东西】的更多相关文章

顾名思义,就是位集合(bit set),是从JDK 1.0就出现的东西,后面的版本又慢慢强化. 我们说学习一样东西,最好是场景驱动 - 要考虑它的使用场景,这样才有意义. 那么,BitSet的应用场景是什么? 我个人的体会是,用于统计,统计整数相关的东西.但这么说未免太空泛了,我们先来看一下它的用法吧. 直接上例子: @Test public void test(){ BitSet set = new BitSet(10); //10 bits set //set() 设为true set.se…
先提一个问题,怎么在40亿个整数中找到那个唯一重复的数字? 第一想法就是Set的不可重复性,依次把每个数字放入HashSet中,当放不去进去的时候说明这就是重复的数字,输出这个数字. if(hs.contains(x)) System.out.println("重复的数字是"+x); else{ hs.add(x); } 但是, HashSet里contains(): public boolean contains(Object o) { return map.containsKey(…
bitset是个好东西.嗯.贼sao~ 很早就讲过但是我并没有弄懂.(现在也不敢说明白) 首先bitset是有常数的,而且常数并不能忽略不计——$(\frac{1}{32})$ 目前我也只是会bitset基本的几个基本函数..(mmp好像和不会一样) 大致是个啥玩意呢,可以看作一个bool数组.或者一个一维的01矩阵(向量?).再或者当做一个整数也行. 目前我只用上过第二点.感觉状压会用上. bitset优化邻接矩阵是很骚的.为啥,常数小啊.传递闭包的时候应该是可以优化更多的常数的.因为bits…
Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的bitset. 每次新开一个蘑菇,为了防止被卡空间,我们只是把指针指向蘑菇u的bitset,并且cnt[u]++.只有当对这个新蘑菇进行操作的时候,才给它单独开一个 bitset. 本题的题解一句话-优雅的暴力. Code #include<iostream> #include<cstdio…
先向各位大佬介绍一个水题 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b). 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 2^2+2+2^0 (2^1用2表示) 3=2+2^0 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=2^10 +2^8 +2^5 +2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+…
如何联合索引查询? 所以给定查询过滤条件 age=18 的过程就是先从term index找到18在term dictionary的大概位置,然后再从term dictionary里精确地找到18这个term,然后得到一个posting list或者一个指向posting list位置的指针.然后再查询 gender=女 的过程也是类似的.最后得出 age=18 AND gender=女 就是把两个 posting list 做一个"与"的合并. 这个理论上的"与"…
Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The travel agency “Four Russians” is offering the new service for their clients. Unlike other agencies that only suggest one-way…
前一段时间在网上看到这样一道面试题: 有个老的手机短信程序,由于当时的手机CPU,内存都很烂.所以这个短信程序只能记住256条短信,多了就删了. 每个短信有个唯一的ID,在0到255之间.当然用户可能自己删短信. 现在要求设计实现一个功能: 当收到了一个新短信啥,如果手机短信容量还没"用完"(用完即已经存储256条),请分配给它一个可用的ID. 由于手机很破,我要求你的程序尽量快,并少用内存. 1.审题 通读一遍题目,可以大概知道题目并不需要我们实现手机短信内容的存储,也就是不用管短信…
自从上次网赛发现这么个东西之后,深深地感受到了bitset的强大,0.0. 正常的bool占用1字节空间,bitset可以把这个缩到1bit,空间上8倍优化.正常用起来可能会跟位运算状态压缩类似,但是其中的每个位又能进行单独操作,所以确实相当方便. 下面是原版的文档:   class template <bitset> std::bitset template <size_t N> class bitset; Bitset Abtsetstores bits (elements w…
Bitset简介 下面介绍C++ STL 中一个非常有用的东西: Bitset 类似于二进制状压,它可以把信息转化成一个01串存储起来 定义方法: 首先要#include<bitset>或#include<bits/stdc++.h> 然后定义一个长度为len的bitset S bitset<len>S; 一些操作 bitset还支持&,^,|三个运算 b._Find_first() 找到第一个1的位置 b._Find_next(x)找到x后面为1的第一个位置…