#P5410. 【模板】扩展 KMP / exKMP(Z 函数)

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

题目描述

给定两个字符串 a,ba,b,你要求出两个数组:

  • bb 的 zz 函数数组 zz,即 bb 与 bb 的每一个后缀的 LCP 长度。
  • bb 与 aa 的每一个后缀的 LCP 长度数组 pp。

对于一个长度为 nn 的数组 aa,设其权值为 xor⁡i=1ni×(ai+1)\operatorname{xor}_{i=1}^n i \times (a_i + 1)。

输入格式

两行两个字符串 a,ba,b。

输出格式

第一行一个整数,表示 zz 的权值。

第二行一个整数,表示 pp 的权值。

aaaabaa
aaaaa
6
21

提示

样例解释:

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


数据范围:

对于第一个测试点,∣a∣,∣b∣≤2×103|a|,|b| \le 2 \times 10^3。

对于第二个测试点,∣a∣,∣b∣≤2×105|a|,|b| \le 2 \times 10^5。

对于 100%100\% 的数据,1≤∣a∣,∣b∣≤2×1071 \le |a|,|b| \le 2 \times 10^7,所有字符均为小写字母。