随笔分类 -  学习笔记

摘要:可持久化栈,支持当前时刻入栈、回溯到某一时刻、某时刻出栈。 struct PersistentStack{ int stk[N],tp,pre[N],root[N]; inline void push(int p,int x){/*当前p时刻入栈*/ stk[++tp]=x; root[p]=tp; 阅读全文
posted @ 2022-11-14 18:05 半步蒟蒻 阅读(83) 评论(0) 推荐(0)
摘要:treap是一种弱平衡的二叉搜索树,同时符合二叉搜索树和堆的性质,堆一般用随机值的小根堆。 旋转treap在每次有修改操作时,通过比较节点的优先值来决定是否旋转,通过旋转来维持树的平衡。 不维护自身副本数,左子树小于等于根节点,右子树严格大于根节点。 struct Treap{ struct tre 阅读全文
posted @ 2022-11-14 18:04 半步蒟蒻 阅读(78) 评论(0) 推荐(0)
摘要:字典树$trie$,用于检索字符串是否出现过,也可以检索前缀,对于字符串的$trie$,每个点拥有$26$个儿子,具有相同前缀的字符串共用前缀节点,整棵树的根节点为空,默认只有小写字母。 一般而言,$root$和$tot$是可以初始化为$0$的,但是特殊情况下需要初始化为$1$,故多数时候初始化为$ 阅读全文
posted @ 2022-11-14 18:04 半步蒟蒻 阅读(70) 评论(0) 推荐(0)
摘要:配对堆是可并堆的一种,支持插入、查询最小值、删除最小值、修改元素,但是无法可持久化。 配对堆是满足堆性质的带权多叉树,使用儿子-兄弟表示法存储。 在删除最小值时,为了保证总的均摊复杂度,需要把儿子们两两配对,再用merge把配成一对的两个儿子合并到一起,再将新产生的堆从右往左挨个合并。 这里的父指针 阅读全文
posted @ 2022-11-14 18:03 半步蒟蒻 阅读(220) 评论(0) 推荐(0)
摘要:斜堆是可并堆的一种,与左偏树类似,只不过没有零距离的概念,在进行合并时不需要比较左右儿子的dis,直接进行合并即可。 这里的父指针并不是真的维护父亲,而是对于并查集的找根操作,因为只要求删除最小值,所以只需要知道一个集合的根节点即可,于是可以路径压缩。 struct SkewHeap{ struct 阅读全文
posted @ 2022-11-14 18:03 半步蒟蒻 阅读(56) 评论(0) 推荐(0)
摘要:ST表,Sparse Table,是解决区间最值问题,及RMQ问题的工具,利用倍增思想,O(N*log2(N))预处理,O(1)查询。 设f[i][j]表示从i开始的2^j个数的最值,初始化f[i][0]=a[i],对于处理f数组,首先枚举区间长度j,第二层枚举左端点i,当i+(1<<j)-1>n时 阅读全文
posted @ 2022-11-14 18:02 半步蒟蒻 阅读(81) 评论(0) 推荐(0)
摘要:宏定义预处理器,实现简化版预处理器,不包含函数,字符ASCII码范围32~126. namespace JRC{ string solve(string s){ string re=""; for(int i=0,j=0;i<s.size();i+=j){/*每次往后跳一个字符串的长度*/ for( 阅读全文
posted @ 2022-11-14 18:00 半步蒟蒻 阅读(187) 评论(0) 推荐(0)
摘要:$dfs$搜索算法,将要搜索的目标分为若干层,每层基于前几层的状态进行决策直到达到目标状态。 全排列问题。 在回溯时清空标记。 void dfs(int x){ if(x==n+1){ for(auto x:ans)printf("%5d ",x); puts(""); return; } for( 阅读全文
posted @ 2022-11-14 18:00 半步蒟蒻 阅读(51) 评论(0) 推荐(0)
摘要:笛卡尔树是一种二叉搜索树,同时也满足大根堆或小根堆的性质,Treap也是一种笛卡尔树。 每个节点记录信息(x,y),对于x是二叉搜索树,对于y是小根堆,在x递增的情况下,可以线性时间内构造一颗笛卡尔树。 两个点的lca的权值就是它们在原序列中的RMQ. 笛卡尔树的先序遍历即是原序列,对于下标为数组下 阅读全文
posted @ 2022-11-14 17:59 半步蒟蒻 阅读(341) 评论(1) 推荐(0)
摘要:Johnson通过另一种方法给每条边重新标注边权。新建一个虚拟结点0,向其他所有点连一条边权为0的边,用Bellman-Ford或SPFA算法求出0到其他所有点的最短路记为gpe[i],对于一条x->y的边权为w的边,将边权重置为w+h[x]-h[y],以每个点为起点,跑n边dijkstra即可,时 阅读全文
posted @ 2022-11-14 17:59 半步蒟蒻 阅读(45) 评论(0) 推荐(0)