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]$ 的最大后缀。

  • 相关阅读:
    1144 The Missing Number (20分)
    1145 Hashing
    1146 Topological Order (25分)
    1147 Heaps (30分)
    1148 Werewolf
    1149 Dangerous Goods Packaging (25分)
    TypeReference
    Supervisor安装与配置()二
    谷粒商城ES调用(十九)
    Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
  • 原文地址:https://www.cnblogs.com/scx2015noip-as-php/p/wc20190126.html
Copyright © 2011-2022 走看看