摘要:
用于多个数构成的集合,取任意个异或起来,的相关问题。 实际上,线性基可以视作一个集合,使得原集所有可以得到的数都可以由新集异或得到,且新集所有异或得到的数都可以由原集异或得到,以及满足新集所有数二进制最高位不同。 具体构造过程如下:假如现在插入一数x。 从最高位向最低位枚举,若x在该位为0则跳过。 阅读全文
摘要:
点双联通分量: 对一张图,若其不含割点,则其为一个点双。 1,对于点双中的两个点(除只有两点一边的特殊图),可以视作其必然存在两条不同的简单路径,使两者经过的并集为空。 2,对于点双中任意一对点,经过它们的简单路径的并集一定为点双本身,意即可以认为两点间简单路径可以通过点双内任意一点。 圆方树: 圆 阅读全文
摘要:
用途: 用于二维坐标系维护多条线段。 算法: 本质上是采用标记永久化, 对每个线段树节点维护一个标记表示该区间存在这一条线段, 查询时从上到下经过节点的标记即为该横坐标上可能经过的线段。 下面需在标记(线段)间的比较上作考虑:建议画图理解 此时对于一个区间\([l, r]\), 找出中点\(mid\ 阅读全文
摘要:
概念 hash,也称散列,可以理解为一种思想:将复杂数据转换为一个标志,映射入简单值域中,用来方便存储与查询。 其实就像离散化可以将数字与其的大小顺序一一对应那样,不过离散化是提前预处理,先把所有目标数据获取后才能离散。 hash大多时候是使用散列函数直接计算,比如取模,这样可以保证同样的数据对应同 阅读全文
摘要:
点分治是一种在树上进行的分治,可以方便的求解树上路径等问题。 例题:P3806 【模板】点分治 1 给定一棵树,询问树上是否存在长度为k的路径。 现在我们假设x为根节点, 那么一条路径长度为k有两种情况, 一种是经过x,一种不经过x, 第一种的两个端点在两个不同子树中, 第二种的两个端点在同一子树中 阅读全文
摘要:
Master Theorem 用途 一种用于计算递归时间复杂度的定理。 比如对于一个时间复杂度递推式:\(T(n)=T(n/2)+O(n)\), 可以浅显地看出它的复杂度为\(O(nlog_2n)\),因为我们这样子的递归写了太多次了。 但我们可以看到\(T(n)=4T(n/2)+n\), 它的复杂 阅读全文
摘要:
## 逆元 求解$ax=b\pmod m$,其实等价于$ax+my=b$,然后扩欧就无了。 可以应用于求当是$a,p$互质,求$a$在模$p$意义下的逆元,方法就是求解$ax=1\pmod p$。 ## 中国剩余定理(CRT) ### 问题: 有$m_1,m_2,...,m_n$,$n$个整数两两互 阅读全文
摘要:
## 题意 题目给定了一个长度为$n$序列$a$与$m$个操作,操作一共有3种: 1.给定$x,y$,使$a_x$增加$y$。 2.给定$x$,使$a$中所有数全部乘上$x$。 3.给出k个数$c_1,c_2,...,c_k$,表示这个操作的任务是按照先后顺序执行编号为$c_1,c_2,...,c_ 阅读全文
摘要:
如果现在有一些操作,有些操作会产生贡献,同时里面的情况会依次发生更改,要求我们去维护发生更改后的总贡献。 这个问题会使得我们初感很棘手,主要原因在于这是一个动态的问题,当其中一个操作发生变化后会对很多的操作产生影响,导致寻常的数据结构难以维护。 而现在引入的CDQ分治可以将一个动态问题分成几个静态问 阅读全文
摘要:
## 定义 一张无向图,如果可以将节点分成两个部分,使得两个部分内部没有任何边相连,也就是每条边的端点都分属两个部分,就可以说这张图为二分图。 ## 判定 当且仅当图中不存在长度为奇数的环时,这一张图为二分图。 因为显然每经过一条边都会到达另一个部分,以此类推,经过奇数条边后比不可能还在一开始的部分 阅读全文