Loading

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页
摘要: 给定一个整数 \(n\) ,求出 $[2,n] $ 之间的所有素数。 prime 数组存放已经筛出的素数, \(m\) 代表素数个数(也就是说遍历时从 \(1\) 遍历到 \(m\) 即可),v 数组代表有没有被标记,避免重复筛。 int v[maxn], prime[maxn], n, k, t, 阅读全文
posted @ 2021-06-29 10:01 EdisonBa 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 珂朵莉树 神奇的暴力数据结构 例题 \(n\) 个数,\(m\) 次操作 \((n,m≤105)\) 操作: 区间加 区间赋值 区间第k小 求区间幂次和 数据随机,时限 \(2s\)。 关键操作:推平一段区间,使一整段区间内的东西变得一样。保证数据随机 #include <set> #include 阅读全文
posted @ 2021-06-29 09:59 EdisonBa 阅读(64) 评论(0) 推荐(0) 编辑
摘要: Treap 您需要写一种数据结构,来维护一些数,其中需要提供以下操作: 插入 \(x\) 数 删除 \(x\) 数(若有多个相同的数,因只删除一个) 查询 \(x\) 数的排名(排名定义为比当前数小的数的个数 \(+1\) ) 查询排名为 \(x\) 的数 求 \(x\) 的前驱(前驱定义为小于 \ 阅读全文
posted @ 2021-06-29 09:58 EdisonBa 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 左偏树 一开始有 \(n\) 个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作: 1 x y:将第 \(x\) 个数和第 \(y\) 个数所在的小根堆合并(若第 \(x\) 或第 \(y\) 个数已经被删除或第 \(x\) 和第 \(y\) 个数在用一个堆内,则无视此操作)。 2 x:输出 阅读全文
posted @ 2021-06-29 09:57 EdisonBa 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 树状数组 支持单点修改,区间查询。 ll lowbit(ll x) { return x & (-x); } ll c[500002], n, m; void add(ll x, ll y) //单点修改 { for (; x <= n; x += lowbit(x)) c[x] += y; } l 阅读全文
posted @ 2021-06-29 09:54 EdisonBa 阅读(23) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页