zoukankan      html  css  js  c++  java
  • 关于 字符串 的一些认识

    先说明一点:我字符串学得不好...

    (CSP) 之前貌似只有 哈希,KMP,Manacher 会有用

    AC 自动机建议 (CSP) 前有所了解,省选前一定要学透彻

    (CSP) 后强烈建议学好 SA 和 SAM ,讲课要找一个靠谱的人讲(__wfx 讲的我很长一段时间都怀疑人生)

    PAM 可以看情况学。

    哈希

    挺神奇的一种思路,把字符串的判定相同由 (O(n)) 变成了 (O(1)),往set/vector等容器里存的时候空间也小了很多。

    然而字符串问题中有很多是匹配问题,所以哈希用途很广。

    一段区间的hash可以通过O(n)预处理后O(1)求.

    hash放到树上也可以O(n)预处理后O(1)求.

    KMP

    匹配字符串的利器,时间复杂度也很优秀

    Manacher

    求回文的利器,知道回文半径后很多回文字符串题都变得很简单。

    和PAM的一个区别:Manacher 需要离线,PAM可以在线。

    AC 自动机

    和 KMP 有相似之处,只不过AC自动机可以用来解决多串匹配问题

    SA

    求出 heigth 数组后能干好多东西。空间还小,建议学会 (O(nlogn)) 的求法,(O(n)) 的求法没太大必要学

    SAM

    解决字符串问题的大杀器,注意字符集的大小会影响时间复杂度和空间复杂度。

    如果出题人很毒瘤的话,一些问题只能用SA来解决(虽然SA能解决的SAM也能解决)

  • 相关阅读:
    Flume基础(一):概述
    Hive高级(2):优化(2) 表的优化
    ospf命令
    Verizon 和某 BGP 优化器如何在今日大范围重创互联网
    BGP数据中心鉴别方法
    多线BGP鉴定
    mpls ldp neighbor 和loopbak
    ospf默认路由
    ospf
    ubuntu cloud init获取元数据失败
  • 原文地址:https://www.cnblogs.com/wljss/p/13138940.html
Copyright © 2011-2022 走看看