随笔分类 -  数据结构

摘要:布隆过滤器 面试被问到了海量数据处理相关的问题。然后发现了布隆过滤器这个数据结构,学了一下,结果就是这是acm里面用过的算法。 我把布隆过滤器分解为两个模块,也就是多次哈希+bitset。 多次哈希用来优化时间,bitset优化了空间。 时间复杂度上的原理 我们想想哈希这个算法有什么有什么缺点?当然 阅读全文
posted @ 2022-09-24 21:58 Paranoid5 阅读(41) 评论(0) 推荐(0) 编辑
摘要:字典树 怎么存储一篇文章里面出现的所有的单词,需要将所有单词存下来吗?字典树给出的答案是no。 朴素的字典树 字典树,英文名 trie。顾名思义,就是一个像字典一样的树。 看看OIwiki的这张图: 对于一个单词比如caab,就表示从1->4->8->13这样一条路径。我们可以使用13来表示这个单词 阅读全文
posted @ 2022-08-05 21:51 Paranoid5 阅读(24) 评论(0) 推荐(0) 编辑
摘要:线段树(2) 写了几个简单题,做一个小的总结。 1.区间修改等差数列 给出一个长度等于 rl+1 的等差数列,首项为K,公差为D,并将它对应加到 [l,r]范围中的每一个数上。即:令 \(a_l = a_l+K,a_{l+1} = a_{l+1}+K+D...a_r+K+(r- 阅读全文
posted @ 2021-08-03 14:51 Paranoid5 阅读(51) 评论(0) 推荐(0) 编辑
摘要:线段树(1) 最基础的模板: #define ls(x) x<<1 #define rs(x) x<<1|1 ll tree[N<<2],tag[N<<2]; ll a[N]; void up(ll p){ tree[p] = tree[ls(p)]+tree[rs(p)]; } //建树 void 阅读全文
posted @ 2021-07-28 16:47 Paranoid5 阅读(48) 评论(0) 推荐(0) 编辑
摘要:倍增与ST表 1.什么是倍增? 顾名思义,成倍增长就是倍增。 任何一个数字都可以表示为一个二进制数。 N=a020+a121+a222+... 一个数字n如果用二进制表示那么就是log2n. 显然这是一个优化思路。 快速幂就是这个思路。 2.ST表 ST表可以处理静态 阅读全文
posted @ 2021-04-22 21:20 Paranoid5 阅读(371) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示