#9865. [SDOI2015] 双旋转字符串

    ID: 9865 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>哈希字符串哈希旋转字符串最小表示法

[SDOI2015] 双旋转字符串

题目描述

给定两个字符串集合 SSTT 。其中 SS 中的所有字符串长度都恰好为 NN ,而 TT 中所有字符串长度都恰好为 MM 。且 N+MN+M 恰好为偶数。如果记 SS 中字符串全体为 S1,S2,,STotalSS_1,S_2,\ldots,S_{TotalS} ,而 TT 中字符串全体为 T1,T2,,TTotalTT_1,T_2,\ldots,T_{TotalT} 。现在希望知道有多少对 (i,j)(i,j) ,满足将 SiS_iTjT_j 拼接后得到的字符串 Si+TjS_i+T_j 满足双旋转性。

一个长度为偶数字符串 WW 可以表示成两段长度相同的字符串的拼接,即 W=U+VW=U+V。如果 VV 可以通过 UU 旋转得到,则称 WW 是满足双旋转性的。比如说字符串 U=U= vijos 可以通过旋转得到 ijosvjosviosvijsvijo。那么vijosjosvi 就是满足双旋转性的字符串。

输入格式

第一行输入四个正整数,分别为 TotalSTotalSTotalTTotalTNNMM,依次表示集合 SS 的大小,集合 TT 的大小,集合 SS 中字符串的长度和集合 TT 中字符串的长度。

之后 TotalSTotalS 行,依次给出 SS 中所有的字符串 Si(1iTotalS)S_i(1 \le i \le TotalS)。保证每一个字符串长度都恰为 NN ,且字符串只由 2626 个小写字母组成。

之后 TotalTTotalT 行,依次给出 TT 中所有的字符串 Ti(1iTotalT)T_i(1 \le i \le TotalT)。保证每一个字符串长度都恰为 MM,且字符串只由 2626 个小写字母组成。

输出格式

输出一个整数,表示满足要求的数字对 (i,j)(i,j) 有多少个。

4 4 7 3
vijosvi
josvivi
vijosos
ijosvsv
jos
vij
ijo
jos
6

样例分析

如上所述。

数据范围与提示

  • 对于 100%100\% 的数据:1N1001 \le N \le 1001M1001 \le M \le 1001TotalS1001 \le TotalS \le 1001TotalT1001 \le Total^T \le 1002NTotalS+MTotalT4×1062 \le N *TotalS+M *TotalT \le 4 \times 10^6