随笔分类 - 学习笔记
摘要:数据结构模块总结归纳 [TOC] 【前言】 临近CSP二轮,做一些总结归纳,就当作是复习吧。加油吧! 【目录】 (注:标 号为重要) 栈 单调栈 队列 单调队列 双端队列 邻接表 堆 对顶堆 优先队列 并查集 扩展域 边带权 连通性 树状数组 权值树状数组 二维树状数组 线段树 多标记下传 权值线段
阅读全文
摘要:欧拉定理 【前言】 欧拉定理挺好玩的。但是一般就用来优化模算术下的乘方运算,没啥意思。不过它的性质比较有意思,在很多模算术带乘方的玩意里有奇效。更何况欧拉函数其本身就比较神奇。 前置技能:容斥,数论基础,同余基础。 【欧拉函数】 欧拉函数$\varphi(n)$表示$1\sim n$中与$n$互质的
阅读全文
摘要:浅谈树上差分 【引子】 我们遇到一些关于树的问题时,往往需要我们统计一些树上的信息,比如子树和,路径边覆盖、点覆盖(目前没见过别的类型)。暴力的解法当然是遍历逐个点对其权值进行修改。 类比序列问题,其在进行区间修改时,可以用差分将$O(n)$复杂度降为$O(1)$。在树上我们是对一条链进行处理,那差
阅读全文
摘要:浅谈最大子矩阵问题 【最大子矩阵问题】 最大子矩阵问题是一类求解某个矩阵中最大符合条件的子矩阵的问题,一般的条件有子矩阵不能覆盖障碍点、子矩阵的形状等。 【极大化思想】 这里首先解释几个概念: 有效子矩阵:满足题目要求的子矩阵。 极大子矩阵:满足题目要求的、边界无法再扩张的子矩阵。 最大子矩阵:极大
阅读全文
摘要:中国剩余定理(CRT) 中国剩余定理出自中国的某本古书,似乎是孙子兵法?(雾 其中有这样一个问题: 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何? 即,对于这样一个方程组: $$ \begin{cases}x\equiv a_1\pmod{m_1}\\x\equiv a_2\pm
阅读全文
摘要:乘法逆元 乘法逆元在模算术中具有举足轻重的地位,$OI$中随处可见它的身影,是一个$OIer$必不可少的基础技能。 对于乘法逆元的作用,我觉得这个总结的挺好: 乘法逆元,一般用于求 $$ \frac{a}{b}\pmod{p} $$ 的值,是解决模意义下除法运算的重要手段。 那么问题来了,为啥不直接
阅读全文
摘要:A A 是一种启发式搜索算法,又叫最佳图搜索算法。 何谓启发式搜索? 众所周知,计算机在执行搜索算法时是没开上帝视角的。因此,在搜索时,往往显得盲目,把所有可能的状态全部遍历,这种搜索我们统称盲目搜索。 启发式搜索,顾名思义,其实就是给了盲目的计算机一点启发,一点智慧,利用这些来引导计算机减少搜索范
阅读全文
摘要:瞎扯$KMP$ 众所周知,$KMP$是一种~~玄学~~的字符串模式匹配算法。 什么是字符串模式匹配? 通俗的讲,就是统计一个字符串(通常很长)中某个子串(即一段连续的字符)出现的次数或位置。一般来说,我们把需要进行统计的那个很长的字符串叫做文本串,把要查找的子串叫模式串。字符串模式匹配,顾名思义,就
阅读全文
摘要:二分与三分 二分查找 在一个单调序列中查找一个元素的算法。 一般偷懒做法: 函数直接实现。 具体实现:不断以从答案所在的区间中间划分出两个子区间,舍弃不存在答案的那一个子区间,在存在答案的那个区间继续二分。 二分答案 在所有问题的答案的集合中二分查找 最优解 的算法。 具体而言,就是先找出答案的范围
阅读全文
摘要:【为什么要优化】 关于SPFA,他死了(懂的都懂) 进入正题。。。 一般来说,我们有三种优化方法。 SLF优化: SLF优化,即 Small Label First 策略,使用 双端队列 进行优化。 一般可以优化15%~20%,在竞赛中比较常用。 设从 u 扩展出了 v ,队列中队首元素为 k ,若
阅读全文
摘要:【定义与概念】 给定一张有向图,若其中存在一个环的所有权值之和为负数,这个环称为负环。 【算法实现】 当然,负环的求解可以暴搜,但是时间复杂度就难以入眼了,我们回到求解单源最短路径算法上面,看看它们能否求解。 我们知道 我们主要使用SPFA,讲一下SPFA判断负环。 SPFA有三种以上的方法判断负环
阅读全文
摘要:【概念与定义】 给定一颗有根树,若节点z既是节点x的祖先,也是节点y的祖先,则称z是x,y的公共祖先。在x,y的所有公共祖先中,深度最大的那个叫最近公共祖先,记为LCA(x,y)。 【算法实现】 暴力 暴力 暴力 如果我们要求x和y的LCA,那我们就设置两个个指针分别指向他们两个,把这两个指针一个一
阅读全文
摘要:【前言】 并查集是一种可以动态维护若干个不重叠的集合,并支持合并于查询的数据结构。 并查集的基本概念很简单,但是这样一种思想的用途十分广泛。 个人理解:这是一种很巧妙的,可以很好的处理对象之间关系的数据结构。 那么先在这里提一下并查集的适用问题(划重点): 在一张无向图中维护节点之间的连通性或子图之
阅读全文
摘要:【醒目】 注意取余运算与取模运算的区别!!! 取余运算在对负整数取余时采取向0取整; 取模运算在对负整数取模时采取向下取整(即向-∞取整)!!! 【定义】 给定一个正整数p,任意一个整数n,一定存在等式 : n = kp + r 其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以
阅读全文
摘要:STO 原作者:Deribs4 priority_queue本质是一个堆。 1. 头文件是#include<queue> 2. 关于priority_queue中元素的比较 模板申明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数
阅读全文
摘要:本文章转自洛谷 原作者: _皎月半洒花 一、简介线段树 ps: _此处以询问区间和为例。实际上线段树可以处理很多符合结合律的操作。(比如说加法,a[1]+a[2]+a[3]+a[4]=(a[1]+a[2])+(a[3]+a[4])) 线段树之所以称为“树”,是因为其具有树的结构特性。线段树由于本身是
阅读全文

浙公网安备 33010602011771号