bit

布隆过滤器

十年热恋 提交于 2020-01-30 14:50:10
不同的数据结构有不同的适用场景和优缺点,你需要仔细权衡自己的需求之后妥善适用它们,布隆过滤器就是践行这句话的代表。 什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。 相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。 实现原理 HashMap 的问题 讲述布隆过滤器的原理之前,我们先思考一下,通常你判断某个元素是否存在用的是什么?应该蛮多人回答 HashMap 吧,确实可以将值映射到 HashMap 的 Key,然后可以在 O(1) 的时间复杂度内返回结果,效率奇高。但是 HashMap 的实现也有缺点,例如存储容量占比高,考虑到负载因子的存在,通常空间是不能被用满的,而一旦你的值很多例如上亿的时候,那 HashMap 占据的内存大小就变得很可观了。 还比如说你的数据集存储在远程服务器上,本地服务接受输入,而数据集非常大不可能一次性读进内存构建 HashMap 的时候,也会存在问题。 布隆过滤器数据结构 布隆过滤器是一个 bit 向量或者说 bit 数组,长这样: image 如果我们要映射一个值到布隆过滤器中

HDU-6057 Kanade's convolution

£可爱£侵袭症+ 提交于 2020-01-30 00:06:47
题面 Description Give you two arrays \(A[0..2^m-1]\) and \(B[0..2^m-1]\) . Please calculate array \(C[0..2^m-1]\) : \[ C[k]=\sum_{i~and~j=k}A[i~xor~j]*B[i~or~j] \] You just need to print \(\sum_{i=0}^{2^m-1}C[i]*1526^i ~mod~998244353\) \(m<=19\) \(0\leq A[i],B[i]< 998244353\) Input There is only one test case. The first line consists of one integer \(m\) . The second line consists of \(2^m\) integers \(A[0..2^m-1]\) The third line consists of \(2^m\) integers \(B[0..2^m-1]\) Output Output only one integer means the answer. Sample Input 2 1 2 3 4 5 6 7 8 Sample Output 568535691 题意 \[ C[k]=\sum_{i

Hid Report Descriptor

馋奶兔 提交于 2020-01-29 09:43:26
  在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。      USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,例如USB鼠标将鼠标移动和鼠标点击等信息返回给电脑,键盘将按键数据数据返回给电脑等;输出报告是主机发送给USB设备的,例如键盘上的数字键盘锁定灯和大写字母锁定灯等。报告是一个数据包,里面包含的是所要传送的数据。输入报告是通过中断输入端点输入的,而输出报告有点区别,当没有中断输出端点时,可以通过控制输出端点0发送,当有中断输出端点时,通过中断输出端点发出。   而报告描述符,是描述一个报告以及报告里面的数据是用来干什么用的。通过它,USB HOST可以分析出报告里面的数据所表示的意思。它通过控制输入端点0返回,主机使用获取报告描述符命令来获取报告描述符,注意这个请求 发送到接口的,而不是到设备。一个报告描述符可以描述多个报告,不同的报告通过报告ID来识别,报告ID在报告最前面,即第一个字节。当报告描述符中没有规定报告ID时,报告中就没有ID字段,开始就是数据。更详细的说明请参看USB HID协议,该协议可从Http:/

MySQL基础篇(2)数据类型

早过忘川 提交于 2020-01-28 06:27:02
  MySQL提供了多种数据类型,主要包括数值型、字符串类型、日期和时间类型。   1.数值类型 整数类型:TINYINT(1字节)、SMALLINT(2字节)、MEDIUMINT(3字节)、INT(INTEGER)(4字节)、BIGINT(8字节) 浮点类型:FLOAT(4字节)、DOUBLE(8字节) 定点数类型:DEC(M,D)(M + 2字节)、DECIMAL(M,D)(M+2字节) 位类型:BIT(M)(1~8字节)   (1)整数类型   MySQL支持在类型名称后面的小括号内指定显示宽度,例如int(5)表示当数值宽度小于5位的时候在数字前面填满宽度,如果指示显示宽度则默认为int(11)。一般配合zerofill使用,zerofill就是用‘0’填充的意思,也就是在数字位数不够的空间用字符‘0’填满。 mysql> create table t1(id1 int, id2 int(5)); Query OK, 0 rows affected (0.01 sec) mysql> desc t1; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+-------

MSP430学习笔记

两盒软妹~` 提交于 2020-01-28 02:13:04
中断 中断边缘选择寄存器PxIES Bit = 0 上升沿触发 Bit = 1 下降沿触发 注意:当向PxIES写入时,当前的PxIN状态将会影响中断触发 PxIES PxIN PxIFG 0→1 0 触发 0→1 1 不触发 1→0 0 不触发 1→0 1 触发 中断使能寄存器PxIE BIT = 0 中断不使能 BIT = 1 中断使能 来源: CSDN 作者: 无眉倒长 链接: https://blog.csdn.net/qq_43710693/article/details/104094944

bit位数

て烟熏妆下的殇ゞ 提交于 2020-01-27 04:36:12
/* 题目描述 两个int32整数m和n的二进制表达,计算有多少个位(bit)不同? 输入描述: 一行中给定两个数字 输出描述: 输出这两个数字中bit不同的个数 示例1 输入 复制 15 8 输出 复制 3 */ #include<stdio.h> int main(int argc,char *argv[]) { int m[32]={0},n[32]={0}; int a,b,cnt,t,i; scanf("%d %d",&a,&b); cnt=0; while(a) { t=a%2; a/=2; m[cnt++]=t; } cnt=0; while(b) { t=b%2; b/=2; n[cnt++]=t; } int result=0; for(i=0;i<32;i++) { if(m[i]!=n[i]) { result++; } } printf("%d\n",result); return 0; } 来源: https://www.cnblogs.com/lijianmin6/p/10707665.html

luoguP5666 树的重心 树状数组

£可爱£侵袭症+ 提交于 2020-01-26 20:12:23
这道题在家里仔细想想还是挺好想的... 考场的时候还是要镇定,给每道题要安排足够的思考时间. code: #include <cstdio> #include <cstring> #include <vector> #include <string> #include <algorithm> #define N 500004 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n; namespace BIT { int C[N]; int lowbit(int t) { return t&(-t); } void clr() { for(int i=0;i<N;++i) C[i]=0; } void update(int x,int v) { if(x<=0) return; while(x<N) C[x]+=v,x+=lowbit(x); } int ask(int x) { int re=0; for(int i=x;i>0;i-=lowbit(i)) re+=C[i]; return re; } int query(int l,int r) { l=max(1,l),r=min(r,n); return l>r?0:ask(r)-ask(l-1);

Bit++

寵の児 提交于 2020-01-26 14:28:25
Codeforces 282A. Bit++ time limit per test: 1 second memory limit per test: 256 megabytes input: standard input output: standard output   The classic programming language of Bitland is Bit++. This language is so peculiar and complicated.   The language is that peculiar as it has exactly one variable, called x. Also, there are two operations:   Operation ++ increases the value of variable x by i .   Operation – decreases the value of variable x by 1 .   A statement in language Bit++ is a sequence, consisting of exactly one operation and one variable x. The statement is written without spaces,

SIG蓝牙mesh笔记3_网络结构

蹲街弑〆低调 提交于 2020-01-26 05:39:41
目录 3. Mesh Networking 3.1 Bearers 承载层 3.2 Network Layer 网络层 3.2.3 Address validity 地址有效性 3.2.4 Network PDU 3.2.6 Network layer behavior 3.3 Lower Transport Layer 下传输层 3.4 Upper trnsport layer 上传输层 3.5 Access Layer 访问层 3.6 Mesh Security 3. Mesh Networking 本部分以mesh网络的分层结构的顺序自下而上地介绍mesh网络。mesh网络结构如下所示: 3.1 Bearers 承载层 本规范定义了两种承载层: Advertising bearer GATT bearer 3.1.1 Advertising bearer 使用 advertising bearer 时,mesh数据包可以使用Advertising Data发送,BLE advertising PDU使用 Mesh Message AD Type标识。 Length AD Type Contens 0xXX Mesh Message network PDU 任何使用Mesh Message AD Type的广播消息应该是无需连接( non-connectable)、无需扫描的(

Bit Miracle Jpeg2000-SEO狼术

北慕城南 提交于 2020-01-26 03:41:26
  Bit Miracle Jpeg2000.Net v2.1.1117   位奇迹Jpeg2000.Net v2.1.1117   免版税的JPEG 2000编解码器,可作为纯.NET库使用。   编解码器使用C#编写,没有不安全的代码和外部依赖关系。   该编解码器可用于WinForms,WPF和ASP.NET。 还提供.NET标准库/ .NET Core / ASP.NET Core版本。   特征   可以压缩和解压缩JPEG 2000图像   有损或无损压缩   Alpha通道支持   可以解码和编码每个组件最多16位的图像   只能解码图像的一部分   只能解码特定的图块   可以限制要解码的质量层数   对不同的层允许不同的压缩比   允许选择编码图像中的分辨率数量   100%管理,没有不安全的封锁   适用于.NET标准库/.NET Core / ASP.NET Core   没有外部依赖   The royalty-free JPEG 2000 codec available as a pure .NET library.   The codec is written in C# without unsafe code and external dependencies.   The codec is available for WinForms, WPF