随笔分类 - 学习笔记
摘要:传送门 这个题我第一眼望过去还以为CF终于出了一个数据结构题,然而实际上这就是一个数据结构题 ####题意: 维护一个长度为n的序列,序列的每一个元素大小a[i]初始为0,颜色初始为1. 有三个操作执行q次 1.把[l,r]涂成颜色c 2.把所有颜色为c的元素加上x
阅读全文
摘要:虽然是第二次学后缀自动机,这个学习的过程在我看来仍然是学习过程中最困难的,因为这个东西比较抽象,应用的性质很多,即使是构造理解起来也十分困难。另外,讲解这个东西的博客都太长了,一个一个写着预计阅读时间一个小时?而且看一句就要好好想一会,不时还要往上翻,晦涩的定义也太多了让人产生抗拒。 写得真的好 我
阅读全文
摘要:也许应该叫后缀排序,是求出sa[i],rk[i]的一种算法。 sa[i]代表排名为i的后缀的开始位置。 rk[i]代表开始位置为i的后缀的排名。 这是实现比原理要复杂的算法。 先求出sa[i]之后再求出rk[i]。 考虑先求出长度为1时候的sa[i]数组。这个时候$s
阅读全文
摘要:点分治算法分析 点分治用来处理单词循环有关数上路径问题。 所有路径对答案的贡献其实可以分成,所有过一点的路径+所有不过这点的路径。 不过这点的路径怎么算?可以以这点为根到它的子树里分治解决。 所以现在问题只有:1、所有过这点的路径怎么解决?2、复杂度怎么保证? 问题二:可以每次分治时以重心为根。这样
阅读全文
摘要:使用均摊分析证明Splay复杂度 (PS:终于知道了二叉搜索树(binarysearchtree)为什么叫BST。) 平衡树的一种,靠着旋转来保证复杂度。 怎么旋转?这已经说烂了,我比较关心的是splay的复杂度怎么证明,和为什么一定要使用双旋操作。 (PS:Splay居然是
阅读全文
摘要:FHQ FHQ是一种非旋Treap。没有了复杂的左/右旋操作所以十分适合菜鸡。 其保证复杂度的方法和Treap一样:给每一节点一个随机权记为rad[i],然后使平衡树满足是关于rad[i]\(的堆。构建二差搜索树时,树的形态唯一而且期望深度为\)(logn) *复杂度小证明: 这个思路来自于
阅读全文
摘要:~~不想写题。不如写写算法总结?~~ KMP 前(che)言(dan) 以前都不知道 KMP 为什么叫 KMP ,现在才明白:该算法是三位大牛: D.E.Knuth 、 J.H.Morris 和 V.R.Pratt 同时发现的,以其名字首字母命名。 KMP 可以在O(n+m)的时间复
阅读全文
摘要:AC自动机 前(che)言(dan) Aho Corasick automation ,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出 n 个单词,再给出一段包含 m 个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典
阅读全文
摘要:前(che)言(dan) 拉格朗日插值法最早被英国数学家 "爱德华·华林" 于1779年发现,不久后(1783年)由 "莱昂哈德·欧拉" 再次发现。1795年,拉格朗日在其著作《师范学校数学基础教程》中发表了这个插值方法,从此他的名字就和这个方法联系在一起。 ~~所以我把拉格朗日插值法叫做爱德华插值
阅读全文
摘要:前(che)言(dan) 回文树,也叫回文自动机,是2014年被西伯利亚民族发明的(~~找不到百度百科,从一篇博客里蒯过来的~~) 作为解决回文问题的大杀器,回文自动机功能强大,实现技巧充满智慧。——dalao 一个性质 一个长度为N的字符串最多有N个不同的回文子串。 为什么? 我们考虑加入一个字符
阅读全文
摘要:写在前面 文章作者实力有限,本文可能有个别错误,如有错误请友好地指出。 高次同余方程就是xa≡b(mod p) 二次同余方程就是x2≡b(mod p) 我们接下来讨论解这两种方程的方法。 那么有一个问题。既然知道了高次同余方程的解法,就可以直接用解高次同余
阅读全文
摘要:LCT,虚实链剖分。支持连边和断边操作。Tarjan制造。 [HNOI2010]弹飞绵羊 当然这题分块可以做,常数小,但是LCT更无脑。 建立一个虚拟的弹飞节点n+1,初始化时对于一个点假如再弹一次就弹飞了,连n+1,否则连弹到的点。维护一个size查询就直接split找size就行了。修改
阅读全文
摘要:(零基础者出门左拐) 最近又双叒学了主席树,打了几道模板题。 ~~感觉还行~~ 主席树,在我看来就是线段树的可持化 ~~(一开始以为主席树只是可持久化权值线段树)~~。在题目中需要建多颗线段树或权值线段树且相邻的线段树差别不大(一般就一个点不一样)时就可以用主席树。运用可持久化的思想,我们并不需要重
阅读全文
摘要:(零基础者出门左拐) 最近学了学树套树,做了几道模板题。 ~~感觉还行~~ 咳咳咳。 树套树,顾名思义,一个树套一个树。比如树状数组套平衡树,就是把树状数组的每一个结点作为一颗平衡树,线段树套权值线段树,就是一颗线段树,每一个结点都是一颗权值线段树。。。 如果有一个问题是 要求一个区间[l,r]
阅读全文