算法
文章平均质量分 93
juruohjr
人如其名,蒟蒻一枚
展开
-
欧拉序求LCA
0 例题引入给定一个有 nnn 个节点的树,然后有 qqq 次询问,每次询问两个节点 u,vu, vu,v 的 LCA\rm{LCA}LCA 。1≤n≤3×105,1≤q≤1071 \leq n \leq 3 \times 10^5, 1 \leq q \leq 10^71≤n≤3×105,1≤q≤1071 讲解可以发现,倍增和树剖都会 TLE\rm{TLE}TLE ,因为每次询问都是 O(log2n)O(\log_2 n)O(log2n) 。1.1 欧拉序1.1.1 构造方法实际上是一个原创 2021-09-23 14:16:05 · 782 阅读 · 1 评论 -
线段树优化建图的速成
前言这个东西比较简单易懂。正文问题引入 ⇒\Rightarrow⇒ CF786B (PLUS)现在有一个 n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105) 个节点的有向图,现在给出 m(1≤m≤105)m(1 \leq m \leq 10^5)m(1≤m≤105) 条信息描述这个图的边,信息有三种:给出三个数 u,v,wu,v,wu,v,w,表示连接一条有向边 (u,v)(u,v)(u,v) ,权值为 www。给出四个数 u,l,r,wu, l, r, wu,原创 2021-04-03 20:47:53 · 711 阅读 · 0 评论 -
高斯消元入门
问题现在有一个 nnn 元一次方程组,类似下面这个样子:{a1,1x1+a1,2x2+...+a1,nxn=b1a2,1x1+a2,2x2+...+a2,nxn=b2...an,1x1+an,2x2+...+an,nxn=bn\begin{cases} a_{1,1}x_1+a_{1,2}x_2+...+a_{1,n}x_n = b_1\\ a_{2,1}x_1+a_{2,2}x_2+...+a_{2,n}x_n = b_2\\ ...\\原创 2021-02-24 22:23:45 · 219 阅读 · 0 评论 -
暴力搜索初探
单纯的暴力搜索就不讲了。技巧1.1 折半搜索这个东西有另外一个名称叫 Meet in the middle\mathrm{Meet~in~the~middle}Meet in the middle 。这个东西可以解决整个规模比搜索可以解决的规模大一倍的题目,这样我们可以将枚举分成前一部分和后一部分,然后将前一部分和后一部分的答案结合起来就可以了。当然了,为了将答案合起来,我们记住的东西一定要有类似结合率的东西(废话)Example&nbs原创 2020-12-04 08:42:31 · 283 阅读 · 0 评论 -
KMP入门和简单运用
前言这是一个咕了将近半年的文章,并不需要什么前置知识,只需要看的懂一些数学表达式就好了。符号约定∣S∣|S|∣S∣表示字符串SSS的长度。S[l...r]S[l...r]S[l...r]表示由第lll个到rrr个字符组成的SSS的子串,位置由111开始。Suf(S)\mathrm{Suf}(S)Suf(S)表示字符串SSS的所有后缀构成的集合,Suf′(S)\mathrm{Suf'}(S)Suf′(S)表示除去自身的所有后缀构成的集合, Suf(S,l)\mathrm{Suf}(S,l)Suf(原创 2020-10-28 21:50:54 · 433 阅读 · 0 评论 -
AC自动机入门和简单应用
前言前置知识:Trie的构建和简单应用KMP的思想概念构建AC自动机实际上是在Trie中加入了fail指针的概念。设S(i)S(i)S(i)表示节点iii表示的字符串,Suf(S)\mathrm{Suf}(S)Suf(S)表示字符串SSS的所有后缀(除去自己)组成的集合,Dic\mathrm{Dic}Dic表示加入到Trie中的所有字符串组成的字典,那么一个fail\mathrm{fail}fail指针代表的内容用形式化表示就是:fail(i)=argmaxS(j)∈Suf(S){∣原创 2020-10-22 21:00:53 · 514 阅读 · 0 评论 -
二项式反演入门
前言符号约定:CnmC_n^mCnm表示在nnn个元素中选择mmm个,而不是在mmm个元素中选择nnn个。简介一个二项式反演就是一个简单的推导。若有f(n)=∑i=0nCnig(i)则有g(n)=∑i=0n(−1)n−iCnif(i)若有f(n)=\sum_{i=0}^n C_n^i g(i)\\则有g(n)=\sum_{i=0}^n (-1)^{n-i} C_n^i f(i)若有f(n)=i=0∑nCnig(i)则有g(n)=i=0∑n(−1)n−iCnif(i)来一个简单原创 2020-10-21 08:05:48 · 403 阅读 · 0 评论 -
FFT和NTT
FFT这个东西比较复杂,可能需要看得久一点,而且本人写的比较草率,极有可能让大家看不懂。问题现在我们需要解决一个加法卷积问题:已知两个数组f,gf,gf,g,每个值为实数,大小都为nnn,现在需要求出一个新的数组hhh,大小为2n2n2n,其中hih_ihi用如下方式计算:hi=∑j=0igjfi−jh_i=\sum\limits_{j=0}^i g_j f_{i-j}hi=j=0∑igjfi−j显然这时时间复杂度是O(n2)O(n^2)O(n2)的,非常不优秀。需要我们进行优化。原创 2020-09-13 15:39:23 · 1477 阅读 · 1 评论 -
数论-数论函数基础知识
基本符号(a,b)=gcd(a,b)(a,b)=\gcd(a,b)(a,b)=gcd(a,b)a⊥b⇔(a,b)=1a \bot b \Leftrightarrow (a,b)=1a⊥b⇔(a,b)=1[expr]=0/1[\mathrm{expr}]=0/1[expr]=0/1如果表达式为真,那么值为111,否则为000.积性函数基本概念:对于一个数论函数f(n)f(n)f(n),当n⊥mn \bot mn⊥m时,满足f(nm)=f(n)f(m)f(nm)=f(n)f(m)f(nm)=f(原创 2020-08-18 07:50:00 · 451 阅读 · 0 评论 -
同余系基本知识
炒冷饭求逆元exgcd(a,m,x,y); ans=(x%m+m)%m;,万能。qpow(a,m-2,m),这个仅限于m是一个质数。inv[i]=(m-m/i)*inv[m%i]%m,线性求逆元。中国剩余定理(CRT)现在已知一个同余方程组:{x≡a1mod m1x≡a2mod m2...x≡anmod mn\begin{cases}x\equiv a_1\mod m_1\\x\equiv a_2\mod m_2\\...\\x\equiv a_n\mod m_n\end原创 2020-08-17 16:08:28 · 697 阅读 · 1 评论 -
后缀自动机入门
后缀自动机入门符号约定∣S∣|S|∣S∣表示字符串SSS的长度。后缀用Suf(S,i=Any)\mathrm{Suf}(S,i=\mathrm{Any})Suf(S,i=Any)表示,如果不写iii则表示后缀集合。p∣Sp|Sp∣S表示ppp是SSS的一个子串。Σ\SigmaΣ表示字符集大小构建endpos\mathrm{endpos}endpos对于一个字符串SSS,对于任意一个p∣Sp|Sp∣S,定义一个集合endpos(p)\mathrm{endpos}(p)endpos(p)(以原创 2020-08-03 14:18:03 · 211 阅读 · 1 评论 -
虚树学习记录
蒟蒻讲虚树什么是虚树虚树其实就是将一颗树化简,只保留关键信息,所得到的一颗新树。用例题引入[LUOGU-P2495 消耗战]题意给定一颗含有nnn个节点的树,切断树上的每一条边eee都有一个代价w(e)w(e)w(e),现在有mmm次询问,每一次给出kkk个关键节点,每个询问回答使得根节点111不能到达所有关键节点的最小费用n≤2.5×105,m≤5×105n\leq 2.5\times 10^5, m\leq 5\times 10^5n≤2.5×105,m≤5×105划重点:∑i=1mki≤原创 2020-05-28 18:15:17 · 576 阅读 · 2 评论 -
同余最短路
概念:属于最短路的拓展应用,常用于类似下面的模型:已知一个带权图,现在需要求出从点 uuu 到点 vvv 是否存在一条路径,满足路径长度为LLL,每条边可以重复经过。其中数据满足:L≤1018 ∀w≤104L \leq 10^{18}~~~\forall w\leq 10^4L≤1018 ∀w≤104当然,题目也可以换...原创 2019-05-02 22:40:35 · 718 阅读 · 0 评论 -
差分约束
什么是差分约束系统用一组一次不等式,以此构成一个图论模型求出某个元素的满足条件的最小值/最大值,或者直接判断是否有解。有点无聊的引例来想一个简单的问题,有三个未知的非负整数x,y,zx,y,zx,y,z,他们满足以下的关系式:{x+15≤yy+20≤zx+19≤z\begin{cases}x+15\leq y\\y+20\leq z\\x+19\leq z\end{cases}⎩⎪⎨⎪⎧...原创 2019-01-06 10:18:58 · 172 阅读 · 0 评论 -
数学期望起步
何为数学期望E(x)E(x)E(x)表示某个东东的数学期望,该东东共有n种情况,每种情况的值为viv_ivi,出现的概率为pip_ipi,则E(x)=∑i=1npiviE(x)=\sum_{i=1}^n p_iv_iE(x)=∑i=1npivi这样,对于等概率的问题,我们就有一种暴力的思路,枚举每一种情况,算出其值,记录方案总数,然后将值的总和除以方案数便可以得到期望值了。但有一个...原创 2018-10-27 00:11:04 · 467 阅读 · 0 评论