Advertisement

洛谷P5410 KMP(Z函数)

阅读量:

【模板】扩展 KMP(Z 函数)

题目描述

对于两个字符串 a,b,需要计算出以下两个数组:

  • bz 函数数组 z,该数组表示 b 与其各个后缀的最长公共前缀长度。
  • ba 的各个后缀的最长公共前缀长度所构成的数组 p

假设有一个长度为 n 的数组 a,其权值定义为从 i=1ni \times (a_i + 1) 进行异或运算的结果。

输入格式

两个字符串 a,b 分别位于两行。

输出格式

第一行给出一个数值,用于表征 z 的权重。

第二行给出一个数值,用于表征 p 的权重。

样例分析与呈现

样例输入 #1

复制代码
    aaaabaa
    aaaaa
    
    
      
      
    

样例输出结构解析

复制代码
    6
    21
    
    
      
      
    

提示

样例解释:

z = \{5\ 4\ 3\ 2\ 1\}p = \{4\ 3\ 2\ 1\ 0\ 2\ 1\}


数据范围:

在第一个测试点中,$|a|,|b| \le 2 \times 1

全部评论 (0)

还没有任何评论哟~