上一页 1 ··· 7 8 9 10 11 12 下一页
摘要: 通过分治来用一个子问题来计算对另一个子问题的贡献,先考虑前半部分,再考虑后半部分,再考虑前半部分对后半部分的影响 处理修改独立,询问可离线的一类问题,对时间分治,用左边的修改处理右边的询问 可以用来解决三维偏序问题 "陌上花开" $code :$ cpp void cdq(int l,int r) 阅读全文
posted @ 2020-01-22 20:46 lhm_liu 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 左偏树可以用来维护可并堆(并查集加堆) 可以用并查集一样的路径压缩来优化复杂度 路径压缩后$fa$记录的就不为其原树中的父亲,而是用来表示堆与堆之间的关系 $dis:$表示该节点到它子树内最近的叶子节点的距离 节点的左儿子的距离不小于右儿子的距离,每次合并时,将一棵树合并到另一棵树的右子树,来保证复 阅读全文
posted @ 2020-01-22 20:45 lhm_liu 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 将矩形分成上边和下边,用四元组$(l,r,h,k)$来表示一条边,其中$k=1$时,其为下边,$k= 1$时,其为下边, 扫描线从下往上扫,每次遇到一条上边或下边时,就停下来 用线段树维护,线段树的每个区间即为$x$轴上的区间,因数据过大,所以将$x$轴上的点离散化处理,那么就可以通过线段树的区间合 阅读全文
posted @ 2020-01-22 20:44 lhm_liu 阅读(206) 评论(0) 推荐(0) 编辑
摘要: Graham算法 先找出以$y$值为第一关键字和以$x$值为第二关键字最小的点,以其作为基准点 然后对剩下的点进行极角序排序 向栈中加点,并维护凸性,最终栈中的点即为凸包上的点 复杂度即为排序的复杂度$O(n\ log\ n)$ $code:$ 阅读全文
posted @ 2020-01-22 20:41 lhm_liu 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 概要 后缀自动机可以理解为是将字符串所有后缀所建出的 \(Trie\) 进行压缩后得出的 \(DAG\)。 对于一个子串 \(s\),它结束位置的集合称为 \(\text{endpos}(s)\),如 \(aaabbaab\),\(\text{endpos}(ab)=\{4,8\},\text{en 阅读全文
posted @ 2020-01-22 20:40 lhm_liu 阅读(462) 评论(0) 推荐(1) 编辑
摘要: 将字符串每个后缀按照字典序排序 $sa:$表示排名为$i$的后缀的起始位置 $rk:$表示起始位置为$i$的后缀的排名 \(sa[rk[i]]=i,\ rk[sa[i]]=i\) 通过倍增和基数排序来实现$O(n\ log\ n)$的排序 基数排序时先排第一关键字,再在第一关键字相同下排第二关键字 阅读全文
posted @ 2020-01-22 20:39 lhm_liu 阅读(137) 评论(0) 推荐(0) 编辑
摘要: $code :$ 阅读全文
posted @ 2020-01-22 20:37 lhm_liu 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 因为$Treap$只认儿子不认爸爸,所以方便复制,直接可持久化就行了 $code:$ 阅读全文
posted @ 2020-01-22 20:35 lhm_liu 阅读(313) 评论(0) 推荐(0) 编辑
摘要: $split:$将一棵$Treap$按照某种划分标准分成$a$和$b$两棵$Treap$ $x$和$y$分别表示$a$和$b$的根 划分后,$a$中所有元素都$\leqslant k$,$b$中所有元素都$ k$ 权值分裂 $code:$ 排名分裂 $code:$ $merge:$合并$x$和$y$ 阅读全文
posted @ 2020-01-22 20:34 lhm_liu 阅读(191) 评论(0) 推荐(0) 编辑
摘要: $code:$ 阅读全文
posted @ 2020-01-22 20:33 lhm_liu 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 形如 \(f(x)=a_0x^0+a_1x^1+a_2x^2+ \dots +a_{n-1}x^{n-1}\)。 点值表示法:通过代入 \(n\) 个不同的值 \(x_0,x_1 \dots x_{n-1}\) 到 \(f(x)\) 中,得到 \(y_0,y_1...y_{n-1}\),用 \((x 阅读全文
posted @ 2020-01-22 20:32 lhm_liu 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 排列数 $A^m_n=n(n 1)(n 2) \cdot\ \cdot\ \cdot(n m+1) =\frac{n!}{(n m)!}$ 组合数 $C^m_n=C^m_{n 1}+C^{m 1}_{n 1}$ $C^m_n=C^{n m}_{n}$ $C^m_n=\frac{n}{m}×C^{m 阅读全文
posted @ 2020-01-22 20:31 lhm_liu 阅读(220) 评论(0) 推荐(0) 编辑
摘要: \(Link\ Cut\ Tree\)(动态树)用实链剖分来实现,维护的对象为一个森林,将原树剖分为若干个辅助树,辅助树用$Splay$来维护 辅助树内部用实边连接,辅助树之间用虚边连接,虚边总是由一棵$Splay$指向另一棵$Splay$的根,即为其中序遍历的第一个点 因为虚边是$Splay$之间 阅读全文
posted @ 2020-01-22 20:30 lhm_liu 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 点分治用来处理树上路径问题,每一次将树分治为几棵子树,然后继续递归,得到答案 每次分治时,子树的根选取为其的重心,递归的子树大小不会超过原树大小的一半,保证了时间复杂度为$O(n\ log\ n)$ 利用容斥原理统计答案 树上有多少对点,满足两点间的距离小于等于$k$ \(code:\) void 阅读全文
posted @ 2020-01-22 20:29 lhm_liu 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 主席树节点中维护的值,是$[x,y]$之间这个区间内数字出现了的次数 利用可持久化线段树的性质来进行查询,如查询区间$[2,5]$,即将版本五和版本一对应节点相减,即为$[2, 5]$内某个范围内的数字的个数 对于一个区间$[l, r]$,每次算出在$[l, mid]$范围内的数字个数,如果数量$ 阅读全文
posted @ 2020-01-22 20:25 lhm_liu 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 合并不采用路径压缩,保证每次合并只修改一个节点的父亲,使当前版本与上一版本共用的节点尽可能的多 为防止并查集退化成链,采取按秩合并 $code$: 阅读全文
posted @ 2020-01-22 20:24 lhm_liu 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 每次进行单点修改后,会新增$log\ n$个新节点,即每次更改的结点数为树的高度 增加的非叶子结点一个儿子是其他版本的节点,另一个儿子是连向新节点 空间复杂度为$O(n+m\ log\ n)$ $code$: 标记永久化实现区间加区间查询 $code:$ 阅读全文
posted @ 2020-01-22 20:23 lhm_liu 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一个网络 \(G=(V,E)\) 是一张有向图,图中每条有向边 \((x,y)\in E\) 都有一个给定的权值 \(c(x,y)\),称为边的容量。特别地,若 \((x,y) \notin E\),则 \(c(x,y)=0\)。图中还有两个指定的特殊节点 \(S,T \in V(S \neq T) 阅读全文
posted @ 2020-01-22 20:22 lhm_liu 阅读(396) 评论(0) 推荐(1) 编辑
摘要: 构建字典图实现自动跳转,构建失配指针实现多模式匹配 $\text{fail}$ 指针表示文本串在当前节点失配后,我们应该到哪个节点去继续匹配,$u$ 的 $\text{fail}$ 指针指向 $v$ 表示从根到 $v$ 的字符串为从根到$u$的字符串的最长后缀,用 $\text{bfs}$ 来构建 阅读全文
posted @ 2020-01-22 20:21 lhm_liu 阅读(122) 评论(0) 推荐(0) 编辑
摘要: void insert(ll x) { for(int i=50;i>=0;--i) { if(x&((ll)1<<i)) { if(!a[i]) { a[i]=x; break; } else x^=a[i]; } } } ll query_max() { ll ans=0; for(int i= 阅读全文
posted @ 2020-01-22 20:20 lhm_liu 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 普通快速幂 $code :$ 有时配合龟速乘使用 $code :$ $O(1)$快速乘 $code :$ 矩阵快速幂 $code :$ 通常用来矩阵加速,已知递推式,求数列第$n$项 如$f[i]=f[i 3]+f[i 1]\ (i\geqslant 3)$ 先构造目标矩阵$\begin{bmatr 阅读全文
posted @ 2020-01-22 20:19 lhm_liu 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 欧拉筛 求小于$n$的所有正整数中的素数集合 $code :$ 每个数只会被最小的素因子筛一次 阅读全文
posted @ 2020-01-22 20:18 lhm_liu 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 裴蜀定理 对任何整数 $a$,$b$ 关于未知数 $x$ 和 $y$ 的线性不定方程(称为裴蜀等式):$ax+by=c$ 方程有整数解(当且仅当 $c$ 是 $gcd(a,b)$ 的倍数),裴蜀等式有解时必然有无穷多个解 即 $ax+by=c$ 有解的充要条件为 $gcd(a,b)|c$ 原方程的解 阅读全文
posted @ 2020-01-22 20:17 lhm_liu 阅读(181) 评论(0) 推荐(0) 编辑
摘要: $code :$ 借助$s$数组来离散化$a$数组 阅读全文
posted @ 2020-01-22 20:16 lhm_liu 阅读(117) 评论(0) 推荐(0) 编辑
摘要: $code :$ $code :$ 随机数生成 阅读全文
posted @ 2020-01-22 20:14 lhm_liu 阅读(133) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 下一页