摘要:
#KMP算法 参考 感谢草叶y提出本文原先存在的错误 基本概念 1、s[ ]是模式串,即比较长的字符串(要去匹配上的字符串)。 2、p[ ]是模板串,即比较短的字符串。(用来去匹配的字符串) 3、“非平凡前缀”:指除了最后一个字符以外,一个字符串的全部头部组合(前面连续的部分)。 4、“非平凡后缀” 阅读全文
摘要:
【环形线性区间dp】[CF]E. Petya and Post 题意(稍微变型):有n个加油站,编号为1到n,且每个加油站都能提供$a_i$的油量(只能提供一次),并且从一个加油站到相邻的加油站会消耗一定量的油量。求在这n个加油站中有几个加油站可以满足顺时针或者逆时针地整整跑完一圈? 思路:如果中途 阅读全文
摘要:
#include <bits/stdc++.h> #define MEM(a,x) memset(a,x,sizeof(a)) #define W(a) while(a) #define gcd(a,b) __gcd(a,b) #define pi acos(-1.0) #define PII pa 阅读全文
摘要:
题意:给定一组数组,a[i]表示数字i拥有数量a[i],同时给定q次查询,每次查询给定一个数字k,表示删掉全部数字第k大的数字,求删去后所有数字的中位数。 #线段树 #include <bits/stdc++.h> #define MEM(a,x) memset(a,x,sizeof(a)) #de 阅读全文
摘要:
#树链剖分 参考 树链剖分详解_博客园_Ivanovcraft *转载请注明出处,部分内容引自banananana大神的博客* #树链剖分 ##树刨的定义 树剖是通过轻重边剖分将树分割成多条链,然后利用数据结构来维护这些链(本质上是一种优化暴力) 定义 父亲结点:具有儿子结点的结点(儿子结点:具有父 阅读全文
摘要:
参考 [算法]轻松掌握tarjan强连通分量_邋遢大哥233 Pecco算法学习笔记(69): 强连通分量 acwing 强连通分量【Strongly Connected Components——简称SCC】 定义 强连通:在一张有向图G中,如果一个顶点u和另一个顶点v,既有从u到v的有向路径,也有 阅读全文
摘要:
乘法逆元 引入 \((a+b)\%p=(a\%p+b\%p)\%p\) \((a-b)\%p=(a\%p-b\%p)\%p\) \((a\times b)\%p=(a\%p\times b\%p)\%p\) 令$a=k_1p+m_1,b=k_2p+m_2$ 易证以上三个性质 但$(a/ b)%p=( 阅读全文
摘要:
gcd的推论,多个数的gcd的转化 \(gcd(a,b,c,d)=gcd(a,a-b,b-c,c-d)\) 证明如下: 先证$gcd(a,b,c,d)<=gcd(a,a-b,b-c,c-d)$ 设$k=gcd(a,b,c,d)$ 若$k|a,k|b$,则有$k|a-b$ 同理可得$k|b-c$,\( 阅读全文
摘要:
树形DP ##树形dp大体结构 void dfs(int u,int fa) { 是否为叶子结点 如果是的话,就执行一些底层的信息的记录 如果不是 遍历结点u所有连接的边,并取出对应的端点 如果端点是父亲结点 continue; } 参数列表里面不单含有当前这个结点,还包括当前这个结点的父亲结点,这 阅读全文
摘要:
倍增LCA B站UP主 LCA问题 在一棵树中求某两个结点的最近的公共祖先(LCA) (两个结点向上去找到去最近的公共祖先) LCA的大致流程 第一步——修正 将两个点修正到同一深度(并不是同一位置只是同一层) 在修正的过程中可能遇到的两种情况 两个点中的其中的一个点并非是其他那个点的祖先,这属于常 阅读全文