随笔分类 -  算法

摘要://我坚信LCT可以平替树剖 #include<bits/stdc++.h> #define ls t[o].ch[0] #define rs t[o].ch[1] #define int long long using namespace std; const int N=500010; cons 阅读全文
posted @ 2023-10-09 19:17 Diamondan 阅读(14) 评论(0) 推荐(0) 编辑
摘要:###Before 2SAT 一般形式为 k,简称 kSAT k>2NP完全,暂不考虑,现考虑2SAT ###模型 有若干个包含2个元素的集合,只能选择每个集合中的一个元素,并给出一些条件(例:选a后不能选b),要求求出满足这些条件的选择,这个解也称为$2 阅读全文
posted @ 2023-01-30 09:34 Diamondan 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Step1 在每一个循环过程中,先寻找到主元,并将主元通过行变换(无需列变换)移动到矩阵的主对角线上, 然后将主元所在的行内的所有元素除以主元,使得主元化为1 然后观察主元所在的列上的其他元素,将它们所在的行减去主元所在的行乘以一定的倍数, 使得主元所在的列内、 除主元外的其他元素化为0 阅读全文
posted @ 2023-01-28 13:54 Diamondan 阅读(59) 评论(0) 推荐(0) 编辑
摘要:SA后缀数组 sa数组:sa[i]=x表示对于所有的后缀进行排序(字典序)后,得到排名为i的以第x个字符开头的后缀 rk数组:rk[x]=i,是对于所有的后缀进行排序(字典序)后,得到以第x个字符开头的排名为i的后缀 sa[rk[x]]=rk[sa[x]]=x 常用算法:nlogn的倍增算法 对于每 阅读全文
posted @ 2023-01-14 17:47 Diamondan 阅读(36) 评论(0) 推荐(0) 编辑
摘要:###KMP算法 模式串p:就是需要寻找的那个串 文本串t:就是一个待与模式串p匹配的字符串 作用: 1.求出模式串p在文本串中出现的位置 2.求出模式串长度为i的前缀的最长的border(就是nxt[]数组,获取失配指针的数组) 算法思想: 充分利用模式串p,使得之前被匹配过的地方不再多匹配 观察 阅读全文
posted @ 2022-11-20 19:04 Diamondan 阅读(15) 评论(0) 推荐(0) 编辑
摘要:###字符串的前缀函数 概念 令字符串为s 令π[i]表示s的[0,i]区间内 真前缀s[0...k-1]和真后缀s[i-k+1...i]相等(不能重合!!!) 长度为k,若有多组,k取最大值,没有,k取0,k即为前缀函数π[i]的值 特别规定π[0]=0 例子 来源oi-wiki 举例来说,字符串 阅读全文
posted @ 2022-11-20 16:16 Diamondan 阅读(74) 评论(0) 推荐(0) 编辑
摘要:###最小瓶颈生成树 瓶颈生成树,即对于图 G 中的生成树树上最大的边权值在所有生成树中最小。 对于无向图来说,无向图的最小生成树一定是最小瓶颈生成树,但最小瓶颈生成树不一定是最小生成树。 因此,使用 Kruskal 算法即可求出无向图的最小瓶颈生成树。 这个算是之前的知识盲点吧,毕竟对MST认识还 阅读全文
posted @ 2022-11-18 16:15 Diamondan 阅读(37) 评论(0) 推荐(0) 编辑
摘要:##Meet in the middle 俗称折半搜索,将 m^n复杂度可降成 m^(n/2) ###1.luoguP5691 [NOI2001] 方程的解数 朴素算法的复杂度为m^n m=150,n=6 稳稳地超时 but采用Meet in the middle 就可以将复杂度降成m^(n/2) 阅读全文
posted @ 2022-11-16 16:13 Diamondan 阅读(68) 评论(0) 推荐(0) 编辑
摘要:###求LCA: //暴力 int n,m,root,fa[N],dep[N]; void dfs(int u,int fath){ fa[u]=fath; dep[u]=dep[fath]+1; for(int i=head[u];i;i=nxt[i]){ int v=to[i]; if(v==f 阅读全文
posted @ 2022-11-16 14:31 Diamondan 阅读(36) 评论(0) 推荐(0) 编辑
摘要:###Johnson全源最短路: n个点m条边 Johnson全源最短路算法 主要解决负环问题的全源最短路径算法 #####主要思路: 1.SPFA判断负环,在跑SPFA之前建立一个[超级源点]标号为0 与每一个点之间都存在一条 长度为0的路径 跑SPFA记录[0]到每个 阅读全文
posted @ 2022-11-16 14:28 Diamondan 阅读(150) 评论(0) 推荐(1) 编辑
摘要:###Manacher算法:最长回文串(以每个点为中心的回文串长度) 直接上代码 MY_Code: //22.10.8 Manacher顶级理解 #include<bits/stdc++.h> using namespace std; const int N=4e7; int pos,maxr;// 阅读全文
posted @ 2022-11-16 14:23 Diamondan 阅读(27) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示