随笔分类 - 算法笔记
摘要:前言 我们的神,MC 曾经曰过,Tarjan 是 级算法。 边双 桥: 在一张连通无向图中,如果去掉一条边使得图的极大连通分量增加了,那么这条边就叫做桥。 边双连通分量: 一张无向图中的一个极大连通子图不存在桥,那么这个子图就是边双(e-bcc)。 性质: 一张无向图进行边双缩点之后是一棵
阅读全文
摘要:前言 好消息,CSP-S t4 出 DDP,并且有的人场上为了调 T3 的假算没写。。。 概述 其实是个挺简单的东西,就是如果一道题可以通过 dp 轻松解决,但是题目加上了每次询问修改一些信息的话,每次重新跑 dp 肯定是会寄寄的,所以我们需要一个更加快速的方式。 解决方法很简单,利用矩阵。如果 d
阅读全文
摘要:前言 前情提要 概论 这类问题的特点是,本来不需要求代价,我却二分出一个代价从而间接的满足题目中的某些限制。最显著的标志,就是 ⌈恰好选 个⌋ 的限制。 这样说比较抽象,来看这题: [国家集训队]Tree I 这题限制了白色边的数量。于是我们二分一个权值,把所有白边全部减去这个权值,然后做最
阅读全文
摘要:前言 在 CodeTon R2 比赛中被 F 题锤爆了。 公平博弈 这篇博客主要探讨公平博弈。 公平博弈的一个局面我们称之为状态,记作 。显然一个博弈有意义,需要满足对于任意的 的转移不成环,否则可以永远进行下去。并且这些状态中,有一些是没有后继状态的,我们称之为终止态,一
阅读全文
摘要:前置芝士 同余概念,逆元,费马小定理,Exgcd,欧拉函数及定理。 (扩展)中国剩余定理 个人喜欢使用非公式形式的合并方式来求解同余方程组。 我们需要求解的问题是求合法的解 ,使之满足: $$\begin{cases} x\equiv a_1\pmod {p_1}\ x\equiv a_2\p
阅读全文
摘要:可能不严谨,但是能看懂,并且可以用~ 概论 你从小就被 在生物课上教育生成函数,但是那个时候的你,连生成函数是什么都不知道。 后来,你在学考前粗粗地看了看,发现完全没法看懂。 最后,听 $\texttt{M}\color{r
阅读全文
摘要:一种神奇的人类智慧,用堆来实现,可以做许多看起来很 dp 的题。
阅读全文
摘要:前言 模拟赛出四边形不等式部分分了!被我用暴力艹过了这一档部分分! 注意!文中的式子都是用了取 作为转移,如果是 也是一样的。细节会有所区别。 四边形不等式 定义 对于一个二元函数 , ,都有 $w(a,
阅读全文
摘要:前言 发现至今没有系统地学过莫队。。。 普通莫队一般人都会,就一分块暴力。 题单 以及 dx 的训练题单 以及 dx 的双倍经验题单。 奇怪的碎碎念 本文的题目基本来自于上面的题单,文末的 Tasks 模块是trashbin前面每个模块里看起来比较综合或者难写的题。相当于作业?以及只有板子题和困难题
阅读全文
摘要:前言 不想学博弈论不想学 SA 不想学插头 dp,学 lct 被 AxDea D 飞了,那就来学 SAM。 SAM? SAM 是后缀自动机,名义上是后缀,但实际上它能表示出一个字符串的所有不同子串。不同于你的 枚举,SAM 构造,节点和边的数量也都是 级别的。 更具体
阅读全文
摘要:前言 这太难了啦~但是冬令营讲这个东西了,提前开坑。前置芝士 Define #define ls tr[x].ch[0] #define rs tr[x].ch[1] struct Tree{int ch[2],val,fa,rev,xv;}tr[MAXN]; LCT? LCT 是怎么超越一般的树剖
阅读全文
摘要:前言 以前的学弟都学了就我还不会,只能爬了。。。 CDQ 分治 **这是一种思想!**这是一种思想!这是一种思想! CDQ 分治是非常优美的过程。当我们考虑序列中的数对计数等问题的时候可以想到用 CDQ 分治。 其过程是: 掏出一个序列; 从中间剪开; 答案分成了 类,一是只在左边的,二
阅读全文
摘要:前言 为了测试你板子的正确性,可以交到 Aizu 上去。我的代码都是 Shared 的。 记得开 double!记得开 double!记得开 double!记得开 double!记得开 double!记得开 double!记得开 double!记得开 double!记得开 double!记得开 do
阅读全文
摘要:前言 又是每个人都会的算法,我不会只能爬去学~ 点分治 点分治通常用来解决树上路径统计问题。 其实点分治的想法很简单就是:我们考虑一棵有根的树,显然可以将其路径分成两类,一类是经过根的,一类是不经过根的。据此,可以得到一个牛逼想法就是:对于当前的根节点,直接求出它到子树内各个点的信息并统计,然后合并
阅读全文
摘要:前言 好像机房人人都会这个东西,就我不会,只能爬去学一下。。。 这是啥 好像是个挺没用的东西,感觉主要处理树上数数什么的问题,都可以用 dsu 神器来替代。但也有的问题不能用 dsu 的,比如这题。 来考虑这样一件事,就是说,我们有的时候希望对于每个点都维护一棵线段树,并且希望能够实现一些鬼畜的♂操
阅读全文
摘要:前言 学校模拟赛的时候差点板题切不掉,痛改前非,决定来好好学一下线性基。 关于真正的线性基 你当我是数竞的吗?还线性基,就我这个勉强搞懂并且不能完全理解线性代数的垃圾怎么可能会线性基啊啊啊你看像这种大佬才有可能会线性基把又不是人人都像你一样天天AKIOI闲着没事捧着本算导搁着天天AK模拟赛没事情干然
阅读全文
摘要:前言 前几天有幸听学长讲平衡树,想着好久没写博客了,记录一下。 简介 Splay,平衡树的一种,依靠每次将访问到的点旋到根来保持树的平衡。 并且,Splay 还可以高效解决序列翻转等操作。 实现 前提 以下代码是基于这样的定义的: struct Tree{int ch[2],val,siz,fa;}
阅读全文