随笔分类 - 算法
摘要:前置:【模板】矩阵快速幂 斐波那契数列 定义 为斐波那契数列第 项,斐波那契数列定义如下 \[Fib_n = \left\{\begin{aligned} 1 \space (n \le 2) \ Fib_{n-1}+Fib_{n-2} \space (n\ge 3
阅读全文
摘要:分块 一种暴力的数据结构,十分朴素的做法。能够处理许多问题。 基础分块 例 :P3372 【模板】线段树 1 经典老题,这次使用分块做法。 我们将整个序列分为若干大小为 的块,记录其块的和和懒标记,对 进行操作时,设左边界 位与块 ,左
阅读全文
摘要:算法介绍 算法(又名马拉车),是一种常用于处理回文字符串的算法。其代码量很小,却可以在 的时间复杂度内处理问题 算法思想 和其他大多数算法一样, 算法利用现有的信息获得下一部分的信息。 经典例题:给定一个
阅读全文
摘要:没什么好写的。 算法思路 有 个未知数 ,给定 个形如 ( 为常数)的不等式。 \(\begin{cases} x_{a_1}-x_{b_1}\le c_1 \ x_{a_2}-x_{b_2}\le c_2 \ \d
阅读全文
摘要:算法简介 平衡树,一种数据结构。是一种特殊的二叉搜索树,能够支持许多操作。 算法思想 典中典: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入一个数 。 删除一个数 (若有多个相同的数,应只删除一个)。 定义排名为比当前数小的数的个数 \(+1
阅读全文
摘要:在树上运行的 dp 叫做树形 dp。 题单。 树形 dp 入门问题 例 1.1:没有上司的舞会 我们发现,对于一个节点,要么选或不选,且题目中要求求出权值最大的方案,不妨分别设 为在以 为根的子树中,第 个点选或不选情况下的最大权值
阅读全文
摘要:rt,一些琐碎的知识点,可能会补充例题。 欧拉路径 定义 欧拉路径:每条边都通过一次的路径。 欧拉回路:起点和终点都相同的路径。 有向图弱联通:将有向边当成无向边后原图联通 分析 对于欧拉路径的判定,通常从点的出度和入度下手分析。下面以无向图为例分析。 如果一个点是起点。从这个点出发以后,每经过一次
阅读全文
摘要:强连通分量 对于有向图 。如果对于任意 。 和 均可以互相到达。则称这个有向图是强连通。 对于一张有向图。其最大的强连通子图被称为强联通分量。简称 SCC。 算法讲解 强连通分量一般使用 tarjan 算法求解。 对于图上连通
阅读全文
摘要:定义 在动态规划中,可能存在以“集合”为状态的动态规划,应为集合不易表示,所以通常用一个二进制数来表示集合。具体的,二进制数的第 位即表示当前集合是否包含第 个元素。 技巧 因为许多位运算的运算优先级很迷,所以搞不明白就尽量用括号。 二进制操作 将 位二进制数全部
阅读全文
摘要:RT,主要介绍一些经典的分治算法 CDQ 分治 经典人类智慧算法。 三维偏序问题 三维偏序是 CDQ 分治的一个经典应用,搭配树状数组可以在 的时间复杂度内解决问题。如果我们枚举每一个元素,然后枚举其他的元素的话,可以在 的时间复杂度解决这个问题
阅读全文