楚颜
楚颜
全部文章
模板
STL(1)
二分(1)
总结(20)
生活(5)
讲解(5)
题解(39)
归档
标签
去牛客网
登录
/
注册
楚颜的博客
全部文章
/ 模板
(共6篇)
【模板】二叉堆(手写堆)
定义一个堆: int heap[maxn] ; //存储堆 int len; //堆中元素个数 将一个数插入堆: 在堆中插入元素x 首先将元素x放到堆中的最后一个位置(即最底层最右边的位置),然后不断地把x往上调整,直到x调不动为止(即大于它现在的父亲,或者x处于根结点)...
2019-08-22
0
500
【模板】线段树
以维护区间和为例,这里的线段树为结构体的数组,因为我觉得用结构体思路比较清晰 变量声明: a[]:原序列 struct node{ int l; int r; //l,r:该结点维护的区间 int num; //该结点维护的区间值 int add; //懒标记 }tree[N*4+...
2019-08-13
0
395
【模板】哈希
预处理: typedef unsigned long long ULL;//将unsinged long long 简写为ULL base=137; power[0]=1;//power[i]表示base的i次方 for (int i=1;i<=n;i++) //n为字符串的长度 p...
2019-08-13
0
328
【模板】ST算法
ST算法适用范围:静态求区间最值 优点:简洁易写,速度、内存消耗优于线段树 缺点:适用范围小,无法更改区间值 注: a[]:原数组 log1[]:log1[i]表示log₂ i向下取整,则log1[i]=log1[i/2]+1 f[i][j]:从a[i]到a[i+2^j-1]这个范围内的最值 ...
2019-08-11
0
342
【模板】树状数组
树状数组适用范围:单点修改,区间修改,单点查询,区间查询 注: a[]:原数组 tree[]:前缀和数组 -lowbit int lowbit(int n) { return n&(-n); }: -单点修改: void add(int x,int k)//在a[x]加上...
2019-08-11
0
368
【模板】KMP算法
用途:处理字符串匹配问题 例子:给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置 时间复杂度:O(n) 变量解释: A[i]:存储A串 B[i]:存储B串 p[i]:在B串中与字母B[i]相同的上一个字母的位置 给出两个字符串s1和s2,其中s2为s1的子串,求出...
2019-08-11
0
560