2018年8月21日训练日记

今天的主要任务是看饶齐的博客中有关线段树的题解。

线段树:区间三更新区间查询三值、找到线段树中>=给定值的第一个元素位置并更新该点、查找并更新从左到右第i个1、最大连续目的子区间长度(区间合并)、区间置0/1,区间异或、区间覆盖染色问题(一般要维护cover[i]信息)、向量区间旋转问题、扫描线(一般这类求平行坐标轴矩形面积的问题可以用矩形离散化来做)。

KMP(O(n+m)):有关前缀后缀的匹配问题、最短周期长度及数量。(长文本的单模板匹配问题)

字典树(O(nL)):有关前缀的一些问题。判断一个单词是否属于字典。(单个单词(短文本)多模板匹配问题)

AC自动机(O(n+∑i=1,m length(si))):判断哪些单词在文本中出现了多少次。(长文本的多模板匹配问题)

常和dp结合,一般来说dp[i][j]表示走到ac自动机的i节点,状态为j时的答案。。。有时候还要进行状态压缩或者结合矩阵快速幂。

后缀数组(代码看不懂,先总结能解决的题目,复杂度O(mlogn)):找不重叠的两个相同子串、找可重叠至少出现K次的子串、找字符串的不同子串个数、最长回文子串(也可用马拉车算法)、两个串的最长公共连续子串的长度、求n个字符串中超过一半字符串中的最长公共连续字串是什么,如果有多解,按字典序输出、求在每个串中至少出现2次且不重叠的子串最大长度。

明天看Treap和splay,争取能够完全理解(最好能写出代码)。有时间继续看图论。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值