数据结构与算法
文章平均质量分 81
ACM竞赛时期的笔记
11D_Beyonder
这个作者很懒,什么都没留下…
展开
-
高精度算法模板
高精度算法模板#include<string>#include<iostream>#include<vector>#include<cstring>using namespace std;struct BigInteger{ static const int BASE=100000000; //和WIDTH保持一致 static const int WIDTH=8;//八位一存储,如修改记得修改输出中的%08d bool sign;//符号原创 2022-03-02 14:52:54 · 110 阅读 · 0 评论 -
分段矩阵快速幂
小 C 的数学题题目描述已知某函数 f(n)f(n)f(n)的定义如下:f(n)={1,n≤2f(n−1)+f(n−2)+⌊log2n⌋,n≥3{\displaystyle f(n)={\begin{cases}1,&{n\le2}\\ f(n-1)+f(n-2)+\lfloor log_2n\rfloor,&{n\ge 3}\end{cases}}}f(n)={1,f(n−1)+f(n−2)+⌊log2n⌋,n≤2n≥3求函数 f(n)f(n)f(n)的值,为了防止数据过大,原创 2022-03-02 14:50:56 · 216 阅读 · 0 评论 -
浅谈分层图
分层图概述一般建图时会给定节点数 nnn 和边数 mmm,然后可以写出利用邻接矩阵、邻接表、链式前向星等等建图的代码。在构建了一张图的基础上,我们将图再复制 kkk 份,形成了k+1k+1k+1 层图,这就是所谓分层图。可以将分层图理解为多个平行的图。一般模型的是:在一张图上,可以进行 kkk 次决策,对于每次决策,不影响图的结构,只影响目前的状态或代价。我们可以构建 k+1k+1k+1 层图,做出一次决策可能意味着跨越层级,一般将决策前的状态和决策后的状态之间连接一条权值为决策代价的边,表示付出该原创 2022-03-02 14:48:41 · 538 阅读 · 0 评论 -
单源最短路径
贝尔曼-福特算法(Bellman–Ford algorithm)贝尔曼-福特算法是求解单源最短路径问题的一种算法,由 Richard Bellman\text{Richard Bellman}Richard Bellman 和 Lester Ford\text{Lester Ford}Lester Ford 创立的。有时候这种算法也被称为 Moore-Bellman-Ford\text{Moore-Bellman-Ford}Moore-Bellman-Ford 算原创 2022-02-20 21:18:01 · 358 阅读 · 0 评论 -
单调队列详解
单调队列概述定义顾名思义,单调队列是队列内元素为单调递增或递减的队列。单调队列的特点单调队列内的元素满足单调性,队列为双端队列,STL\text{STL}STL 提供了类模板 deque\text{deque}deque 。由于 deque\text{deque}deque 速度较慢,一般用数组模拟双端队列。维护方式通过双端队列头和尾的进出维护队列内元素的单调性。有删除队头、删除队尾、将元素推入队列三种操作。维护队列内元素的单调性的本质是,每次操作都将没有潜力的元素从队列中去除,而将有潜力的元原创 2022-02-18 09:42:47 · 832 阅读 · 0 评论 -
字典树简介
欢迎访问个人博客概述 在计算机科学中,Trie\text{Trie}Trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie\text{Trie}Trie这个术语来自于retrieval\text{retrieval}ret原创 2020-07-09 00:32:30 · 737 阅读 · 0 评论 -
KMP算法
朴素的模式匹配算法 主串为S=“abcdefgab”S=\text{“abcdefgab”}S=“abcdefgab”,我们要匹配T=“abcdex”T=\text{“abcdex”}T=“abcdex”。定义两个指针 i,ji,ji,j,分别指向字符串S,TS,TS,T。最初,i,ji,ji,j 指向两个字符串的头,将两个字符串的头对其,开始同步向后移动两个指针,当 i=j=6i=j=6i=j=6 时,发现s[i]≠t[j]s[i]\ne t[j]s[i]=t[j],这时就将 TTT 相对 SS原创 2022-02-17 00:10:51 · 216 阅读 · 0 评论 -
单调队列
欢迎访问个人博客单调队列概述定义 顾名思义,单调队列是队列内元素为单调递增或递减的队列。单调队列的特点 单调队列内的元素满足单调性,队列为双端队列,STL\text{STL}STL 提供了类模板 deque\text{deque}deque 。由于 deque\text{deque}deque 速度较慢,一般用数组模拟双端队列。维护方式 通过双端队列头和尾的进出维护队列内元素的单调性。有删除队头、删除队尾、将元素推入队列三种操作。 维护队列内元素的单调性的本质是,每次操作都将没有潜力原创 2020-07-13 23:33:12 · 168 阅读 · 0 评论 -
Tarjan缩点算法
欢迎访问个人博客概述强连通分量 强连通图(Strongly Connected Graph\text{Strongly Connected Graph}Strongly Connected Graph)是指在有向图 GGG 中,如果对于每一对 vi,vjv_i,v_jvi,vj,vi≠vjv_i≠v_jvi=vj,从 viv_ivi 到vjv_jvj和从 vjv_jvj 到 viv_ivi 都存在路径,则称 GGG 是强连通图。有向图中的极原创 2020-07-12 23:28:51 · 2193 阅读 · 0 评论 -
阶与原根的性质
欢迎访问个人博客阶 要定义原根,先要引入数论中阶的概念。阶的定义 设 a,m∈N+a,m\in\mathbb{N^+}a,m∈N+,且 a⊥ma\perp ma⊥m,使 ax≡1(modm)a^x\equiv 1\pmod max≡1(modm) 成立的最小正整数 xxx,称为 aaa 模 mmm 的阶,记为 ordma\text{ord}_maordma。阶的性质 说明:描述阶的性质时,默认 a,m∈N+a,m\in\mathbb{N^+}a,m∈N+,且 a⊥ma\bot ma⊥m,原创 2020-07-10 21:05:59 · 1041 阅读 · 0 评论 -
最长公共回文子串
欢迎访问个人博客Longest Common Palindrome Substring ↬\looparrowright↬题目描述 A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left.Given two strings which consists of lowercase letters, find the原创 2020-07-09 11:00:48 · 841 阅读 · 0 评论 -
扩展卢卡斯定理
转载自 11D_Beyonder’s Blog引入 有卢卡斯定理,{%raw%}(nm)≡(n mod Pm mod P)×(⌊nP⌋⌊mP⌋)(modP)\begin{pmatrix}n\\m\end{pmatrix}\equiv\begin{pmatrix}n\bmod P\\m\bmod P\end{pmatrix}\times\begin{pmatrix}\left\lfloor\frac{n}{P}\right\rfloor\\\left\lfloor\frac{m}{P}\right\rf原创 2020-07-07 23:27:04 · 283 阅读 · 1 评论 -
扩展中国剩余定理
转载自11D_Beyonder’s Blog简介 对于一元线性同余方程组 {x≡a1( mod m1)x≡a2( mod m2)⋮x≡an( mod mn)\left\{\begin{array}{c}x \equiv a_{1}\left(\bmod m_{1}\right) \\x \equiv a_{2}\left(\bmod m_{2}\right) \\\vdots \\x \equiv a_{n}\left(\bmod m_{n}\right)\end{array}\right.原创 2020-07-06 00:12:21 · 177 阅读 · 0 评论 -
类欧几里得算法
来源类欧几里德算法由洪华敦大佬在 2016 年 NOI\text{NOI}NOI 冬令营营员交流中提出。截止 2020 年 4 月 29 日,百度百科和维基百科都尚未收录该词条 Orz\text{Orz}Orz。前置知识取整函数⌊ab⌋\left\lfloor\frac{a}{b}\right\rfloor⌊ba⌋ 为 ab\frac{a}{b}ba 向下取整,⌈ab⌉\left\lceil\frac{a}{b}\right\rceil⌈ba⌉ 为 ab\frac{a}{b}ba 向上取整。原创 2020-06-30 00:04:54 · 323 阅读 · 0 评论 -
扩展欧几里得算法
理论基础斐蜀定理(Bézout’s lemma)定理描述对任何整数aaa、b{\displaystyle b}b和c{\displaystyle c}c,关于未知数x{\displaystyle x}x和y{\displaystyle y}y的线性丢番图方程:ax+by=c{\displaystyle ax+by=c}ax+by=c当且仅当gcd(a,b)∣cgcd(a,b)|cgcd(a,b)∣c时有整数解。证明先证:对于任意整数 a,ba,ba,b ,存在一对整数 x,yx,yx,y ,满足原创 2020-06-29 23:56:14 · 301 阅读 · 0 评论 -
01分数规划
01分数规划基本问题给出两个有 nnn 个元素的数组 aia_iai 和 bib_ibi,对于一组 wi∈{0,1}w_i\in \{0,1\}wi∈{0,1},可能使得 ∑i=1naiwi∑i=1nbiwi\Large{\frac{\sum\limits_{i=1}^n a_iw_i}{\sum\limits_{i=1}^n b_iw_i}}i=1∑nbiwii=1∑naiwi 取得最值,求这个最值。求解——二分法check函数我们二分答案。假设要求的是最大值。二分得到一个答原创 2020-06-29 23:50:05 · 992 阅读 · 0 评论