合集-算法总结

摘要:\(CDQ\) 分治是一种特殊的分治方法,基本思想就是前一半的结果辅助后一半答案解答。 一、归并排序 提到 \(CDQ\) 分治,就不得不提到归并排序。 作为一种 似乎只有在瑞士轮里才有用的算法,归并排序有着优秀的时间复杂度,短小精悍的代码,十分的可爱。 首先,我们将问题转换成这样(\(l,r\) 阅读全文
posted @ 2024-02-03 08:40 长安一片月_22 阅读(16) 评论(0) 推荐(0) 编辑
摘要:基环树算法总结 一、什么是基环树 基环树,顾名思义,有两个要素:环和树。 因此,基环树就是一棵树的一个节点,扩成一个环,做题时,多棵基环树组成的基环树森林,常以如下方式出现: 每个点只有一个出边。 每个点只有一个入边。 图中一共有 \(n\) 个点,\(n\) 条边。 那么,基环树类型的题目应该怎么 阅读全文
posted @ 2024-04-20 11:23 长安一片月_22 阅读(12) 评论(0) 推荐(0) 编辑
摘要:虽然当时文风很2,但是觉得写的蛮好的,就在这里贴一下吧。 最近学了分块(太难想了 \(qwq\) )和莫队(太神奇了 \(0w0\) ),写一个阶段性总结~ 分块 总所周知,分块是一种神奇的暴力,用 \(O(n\sqrt{n})\) 的较为优秀的时间复杂度,解决线段树与树状数组不能解决之事 那么,他 阅读全文
posted @ 2024-06-27 10:08 长安一片月_22 阅读(12) 评论(0) 推荐(0) 编辑
摘要:珂朵莉树总结我永远喜欢珂朵莉! 阅读全文
posted @ 2024-08-17 17:52 长安一片月_22 阅读(37) 评论(0) 推荐(0) 编辑
摘要:虚树算法总结。 阅读全文
posted @ 2024-08-18 20:00 长安一片月_22 阅读(16) 评论(0) 推荐(0) 编辑
摘要:龟速乘+快速乘+素性测试($Miller-Rabin$)。 阅读全文
posted @ 2024-08-23 15:28 长安一片月_22 阅读(26) 评论(0) 推荐(0) 编辑
摘要:众所周知,\(Li\ Chao\ Tree=LCT=Link\ Cut\ Tree\)。 在我们的日常学习生活中,经常会遇到以下问题: 维护一种数据结构,要求: 添加一条线段 求解 \(x=k\) 与所有线段交点中,\(y\) 最大的一个。 众所周知,线段会影响一个区间的答案。区间取 \(max+\ 阅读全文
posted @ 2024-10-11 21:27 长安一片月_22 阅读(14) 评论(0) 推荐(0) 编辑
摘要:之前曾经写过,但是 \(latex\) 弄不下来,直接截屏了…… 阅读全文
posted @ 2024-10-11 21:44 长安一片月_22 阅读(10) 评论(0) 推荐(0) 编辑
摘要:前言 在日常的学习生活中,我们经常会遇到如下问题: 维护一个数据结构,可以插入或删除一个数、求该数排名、求排名给定的数、求一个数的前驱后继。 这种情况下,权值线段树可以不优雅的解决这个问题。为了找到更优雅、适应性更强的算法,人们发明了平衡树。平衡树已经渗透入大部分 \(OIer\) 的代码中。对于一 阅读全文
posted @ 2024-10-24 22:19 长安一片月_22 阅读(5) 评论(0) 推荐(1) 编辑
摘要:1.什么是可持久化 对应的具体问题就是给你一个可以用普通数据结构(如线段树、平衡树等)解决的问题,但是操作可能会在历史版本上进行。 由于主席树笔者曾经写过,所以这里跳过。 2.可持久化平衡树 思想很简单。众所周知,\(FHQ-Treap\) 是个好东西,他就可以用来写可持久化平衡树。 考虑 \(sp 阅读全文
posted @ 2024-11-21 21:46 长安一片月_22 阅读(6) 评论(0) 推荐(0) 编辑
摘要:一、线段树分裂 类似于 \(FHQ-Treap\) 的方式,下给出模板题代码。 //Luogu5494 #include<bits/stdc++.h> #define int long long using namespace std; const int N=2e5+5,M=5e6+5; int 阅读全文
posted @ 2024-11-29 13:26 长安一片月_22 阅读(3) 评论(0) 推荐(0) 编辑
摘要:本文有着大量的感性理解,或没有证明的性质。鄙人尚菜,还请各位看官多多包涵。 一、置换 实际上可以理解为对集合的每个元素一个新的标号,满足这个标号集合与原集合一一对应。 如集合 \(X=\{x_1,x_2,\dots,x_n\}\),他的置换就可以表示为:\(\sigma=(_{x_{p_1}\ \ 阅读全文
posted @ 2024-12-08 19:59 长安一片月_22 阅读(10) 评论(0) 推荐(0) 编辑
摘要:一、概念 线性基实际上就是维护了一个数组 \(p\),满足 \(p_i\) 在二进制下的最高位为第 \(i\) 位。 二、实现 现在我们有一个数组 \(a\),我们要构造他的线性基 \(p\)。 每次插入 \(a_i\) 时,我们都从高位往低位遍历,用以寻找第一个空位插入它。当然,我们也不能直接把原 阅读全文
posted @ 2024-12-14 11:21 长安一片月_22 阅读(5) 评论(0) 推荐(0) 编辑
摘要:首先,\(LCT\) 一般指疏松结缔组织。 疏松结缔组织是指一种柔软而富有弹性的结缔组织。主要填充在各器官或组织间的间隙中,如剥制动物标本时,将皮肤拉开,就可见到薄而透明的疏松结缔组织。 对不起,刚才生物同志走错片场了。 \(LCT(Link\ Cut\ Tree)\),是一种可以解决动态树问题的数 阅读全文
posted @ 2025-01-06 17:12 长安一片月_22 阅读(2) 评论(0) 推荐(0) 编辑
摘要:学原根发现拔山盖世算法忘光了,干脆一块儿写了吧。 \(BSGS\) 算法 \(BSGS\) 算法,又名拔山盖世算法、北上广深算法。他解决的问题如下: 求解最小的可行的 \(k\),满足 \(a^k\equiv b(\bmod p)\),其中保证 \(\gcd(a,p)=1\)。 容易想到暴力枚举,时 阅读全文
posted @ 2025-01-17 11:26 长安一片月_22 阅读(11) 评论(0) 推荐(0) 编辑
摘要:注:由于发现 FWT 解决的问题和 FFT,NTT 差别有点大,加之 FMT 的存在,本文就只解决 FFT 和 NTT,剩下两个放在别的算法总结里讲。 多项式一向是算法竞赛中相当博大精深的东西,作为一个蒟蒻,我将会以最大的努力完成这篇记录,以防自己以后看不懂qwq。 FFT(快速傅里叶变换) FFT 阅读全文
posted @ 2025-01-18 11:01 长安一片月_22 阅读(8) 评论(0) 推荐(0) 编辑
摘要:下降幂 注:这里其实还有上升幂。 定义 下降幂:\(x^{\underline{k}}=\prod\limits_{i=x-k+1}^xi=\frac{x!}{(x-k)!}\) 上升幂:\(x^{\overline{k}}=\prod\limits_{i=x}^{x+k-1}i=\frac{(x+ 阅读全文
posted @ 2025-01-22 11:01 长安一片月_22 阅读(13) 评论(0) 推荐(0) 编辑
摘要:我们知道,FFT 和 NTT 可以用来解决下面这种问题: \[c_k=\sum_{i+j=k}a_ib_j \]不过,这并不是卷积的全部形态,比如下面这种: \[c_k=\sum_{i*j=k}a_ib_j \]其中 \(*\) 代表一种位运算。 面对这种位运算类型的卷积,我们也有别样的方法,那就是 阅读全文
posted @ 2025-01-24 11:39 长安一片月_22 阅读(13) 评论(0) 推荐(0) 编辑
摘要:min-max 容斥,又名最值反演(我其实更喜欢后面这个名字),是一种常用的反演思想。 引入 在皇后游戏一题中,我们曾经证明过 \(\max(a,b)-a-b=-\min(a,b)\)。 我们尝试推广亿下下这个式子,就会得到两条反演公式: \[\max(S)=\sum_{T\subseteq S}( 阅读全文
posted @ 2025-01-24 15:26 长安一片月_22 阅读(32) 评论(0) 推荐(0) 编辑
摘要:自适应 Simpson 积分法,是一种计算一段区间内,形态奇怪的函数和的算法,例如面积并和难以直接用通项公式计算的函数。 Simpson 积分 我们都知道,求解微积分需要求解一个导数的原函数,但这显然更难,比如说 \(f(x)=\dfrac{cx+d}{ax+b}\) 这个函数,就相当难以求解原函数 阅读全文
posted @ 2025-02-03 10:46 长安一片月_22 阅读(11) 评论(0) 推荐(0) 编辑

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