随笔分类 - 算法
算法。
摘要:分块 特点:一种优雅的暴力,大段维护,小段朴素。 假设我们有一个长度为 的数组 。 需要我们维护区间修改和区间查询等操作。 那么朴素算法就不用说了,如果是万能的线段树还行。但是线段树码量过大,容易出bug。 这个时候就得用到分块的思想。 分块思想: 对于需要维护的数组 \(a\
阅读全文
摘要:排序算法大合集 翻了翻很久以前写的算法报告,现在整理一下。 由难度从简单到难排序。 桶排序、冒泡排序、选择排序、快速排序。 最简单粗暴——桶排序 (一)桶排序原理 桶排序,是一个目前速度最快的一种排序 基本思想是将无序列数依次装进一个按元素名命名数组中 最后挨个判断每个“桶”中有没有数 有的话将其输
阅读全文
摘要:再述 Dijkstra 学 Dijkstra 好久了,今天再学了一遍,感觉推翻了好多自己的知识…… 定义 一种用于求非负权值的图的单源最短路径的算法。 方法 已知:如果要求从起始点 s 到某一个点 x 的最短路径,显然只能从某一个已确认为最短路径的点转移。 给个图: 假设我们的起始点是点 1,现在我
阅读全文
摘要:根号分治 总结:玄学。 难度:玄学。 方法:砍时间复杂度。 根号分治是一种在对数据规模分类讨论的基础上利用不同算法平衡复杂度的思想。 具体看样例题目。 题目 洛谷 P8572 [JRKSJ R6] Eltaw。 读完题,不难想出前缀和的思想,用 表示第 个序列的第
阅读全文
摘要:对数函数 前言 表扬一下 福州屏东中学,新初一课本里是乘方,作业考的是 的公式。 (要不是作业我都快忘记 了) 定义 若 ,则 。 即“底不变,俩交换”。 例如 \(\because 2^3=8,\
阅读全文
摘要:[算法日常] 分层图最短路 定义 对于一个可以跑最短路的图 ,有 次可以 改变权值 的机会的问题,我们叫它分层图最短路。 前置知识 最短路(建议使用 dijkstra) dp 解法 解法1:二维dp 首先根据 dijkstra 算法中的松弛操作数组 dis[i] 入手,原意是表
阅读全文
摘要:CSP初赛知识点:Linux 系统 前言 近年 CSP 初赛几乎前 5 道选择题都有一两道有关 Linux 系统的使用,所以作为备战 CSP-J/S 2024 的资料,整理下来啦。 祝各位今年所有考试都能考出自己满意的成绩! 1、常用文件操作命令 以下设文件名均为 csp,需要复制或修改成的文件名均
阅读全文
摘要:欧拉函数 定义 对于任意的正整数 ,欧拉函数 表示小于等于 的所有数中与 互质的数的个数。 暴力实现 那么根据定义,不难直接打出一个时间复杂度 的代码,枚举所有小等于 的数字 ,若 \(\gcd(n,i
阅读全文
摘要:浅谈二分算法 二分 首先知道一下二分是什么。 二分,是一种快速处理大型数据的方法。基本逻辑是折半查找。 设有一个共有 个数字的数组,要从中查询某个元素,就可以用二分查找。 注:这里的数组默认其成员数值具有单调性。这个点十分重要。 还记得小时候(我现在才新初一)跟同学玩过一个游戏(数字炸弹
阅读全文
摘要:次小生成树 前置知识: 图论 最小生成树 倍增求LCA 概念 次小生成树,分为严格次小生成树和非严格次小生成树。 一下设图为 ,最小生成树为 ,非严格次小生成树为 ,严格次小生成树为 。 非严格次小生成树:在图 的所有除了 的生成
阅读全文
摘要:裴蜀定理 Definition 设d=(a,b) 则存在两个整数x,y,满足: Solution 首先带入下数据(随便两个整数) 例:14 10 不难看出,gcd(14,10)=2 辗转相除法: (a,b)=(b,a mod b) \(\cfrac{14}{10}=1...4
阅读全文
摘要:差分约束 差分约束 是一种特殊的 n 元一次不等式组,m 个约束条件,可以组成形如下的格式: \[
阅读全文
摘要:矩阵快速幂 矩阵: 一个矩阵 ,是由 个数字组成, 由 组成,详见下。 \[A=\begin{bmatrix}a_{1,1},a_{1,2},a_{1,3}\cdots a_{1,m} \\ a_{2,1},a_{2,2},
阅读全文
摘要:二分图 定义: 二分图是一种特殊的图,顶点被分为左右两部分,且两部分内没有连边。 来源于oiwiki 因为此图可以被分为两个集合,所以每条边链接的两个顶点都可以看作一个黑色,一个白色(如上图)。 判定是否为二分图 需要判断是否能分为两个集合 可以用染色法。 用深搜去遍历图,给每个顶点赋上颜色(黑白)
阅读全文