zoukankan      html  css  js  c++  java
  • SPOJ1811 && SPOJ1812

    SPOJ1811 && SPOJ1812

    LCS && LCS2

    非常神奇的两道题。。。

    题目大意:

    给定n个字符串,求最长公共子串

    做法1:

    后缀数组:

    把字符串连起来建成一个长串

    二分长度 --> 最长的长度即可

    二分判断条件,有一组height分组中出现了所有子串的某一后缀

    做法2:

    后缀树:

    把字符串连起来建成一个长串

    建出后缀树

    只有有一个点的子树中出现了所有的子串的某一后缀

    它的深度就可能成为长度

    当然,要带上map

    自然,现在是无法维护的。

    注意到建树的时候的特点,可以选择在建树的时候来维护。

    做法3:

    后缀自动机:

    把第一个串建成后缀自动机

    后面的串在上面匹配取min即可

    所以。。。。

    后缀系列的东西都差不多。。。。。

  • 相关阅读:
    接口详解
    可空类型
    初学泛型
    结构和类
    触发器
    学习C#异常处理机制
    静飘移
    《Hashtable(散列表)》 集合
    自定义集合类
    Automation伺服程式無法産生物件
  • 原文地址:https://www.cnblogs.com/reverymoon/p/9000516.html
Copyright © 2011-2022 走看看