zoukankan      html  css  js  c++  java
  • 【WC笔记】字符串前沿算法

    Q1

    对于给定的字符串,求本质不同的子串数。

    A1

    在加入 $s_l$ 时,考虑 $s[l:r]$ 的上一次出现是 $s[k:k+r-l]$,那么应该在线段树上 $[r,k+r-l]$ 这个区间 $+1$。

    那么假设路径 $(x,y)$ 上的点都满足 $r_u=z$,且 $len[fa[x]]=a,space len[y]=b$,

    那么对线段树的贡献是一个类似平行四边形的加法,修改比较显然。

    查询 $s[l:r]$ 的本质不同的子串数的话,在假如 $s[l]$ 后查询线段树的第 $r$ 个位置即可。

    Q2

    对于给定的字符串 $s$,求 $s[l:r]$ 的后缀树节点数。

    source:《后缀树节点数》命题报告及一类区间问题的优化——陈江伦

    A2

    建出后缀树

    Q3

    这个 $idea$ 比较简单就直接放在一个题目里说了。

    维护一个字符串 $s$,支持在 $s$ 的某个位置插入一个字符串,删除 $s$ 某一段的字符串。

    可以看成是一个普通的文本编辑器。

    由于在文本编辑器里进行搜索的时候我们都是一个一个字母键入的,为了模拟这一过程,每次询问给出一个询问串 $p$,对于每一个 $1le ile |p|$,你需要回答 $p[:i]$ 在 $s[l:r]$ 中出现了多少次。

    只需要三个操作都比暴力快即可($O(|s|$)。

    A3

    块状链表

    Q4

    给定一个字符串 $s$,每次 $O(1)$ 询问 $s[l:r]$ 的最大后缀。

  • 相关阅读:
    CheckBox单选功能
    DOTNET
    常用命令行
    不能调试的问题的解决
    url字符串中含有中文的处理
    案例:星移eWorkflow.net系统
    使用正则表达式求完整路径中的文件名
    缺少一个***.resource的报告的解决
    Mapx中的图元移动
    Distance计算的距离随经纬度不同
  • 原文地址:https://www.cnblogs.com/scx2015noip-as-php/p/wc20190126.html
Copyright © 2011-2022 走看看