#P5231. [JSOI2012] 玄武密码

    ID: 5951 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>字符串2012各省省选江苏后缀自动机 SAMO2优化AC 自动机后缀数组 SA

[JSOI2012] 玄武密码

背景

在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河。相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中。老人们说,这是玄武神灵将天书藏匿在此。

很多年后,人们终于在进香河地区发现了带有玄武密码的文字。更加神奇的是,这份带有玄武密码的文字,与玄武湖南岸台城的结构有微妙的关联。于是,漫长的破译工作开始了。

题目描述

经过分析,我们可以用东南西北四个方向来描述台城城砖的摆放,不妨用一个长度为 nn 的序列 ss 来描述,序列中的元素分别是 E,S,W,N,代表了东南西北四向,我们称之为母串。而神秘的玄武密码是由四象的图案描述而成的 mm 段文字。这里的四象,分别是东之青龙,西之白虎,南之朱雀,北之玄武,对东南西北四向相对应。

现在,考古工作者遇到了一个难题。对于每一段文字 tt,求出其最长的前缀 pp,满足 pp 是 ss 的子串。

输入格式

第一行有两个整数,分别表示母串的长度 nn 和文字段的个数 mm。

第二行有一个长度为 nn 的字符串,表示母串 ss。

接下来 mm 行,每行一个字符串,表示一段带有玄武密码的文字 tt。

输出格式

对于每段文字,输出一行一个整数,表示最长的 pp 的长度。

7 3
SNNSSNS
NNSS
NNN
WSEE

4
2
0

提示

数据规模与约定

  • 对于 20%20\% 的数据,保证 n≤100n \leq 100,m≤50m \leq 50。
  • 对于 40%40\% 的数据,保证 n≤2×104n \leq 2 \times 10^4,m≤2×103m \leq 2 \times 10^3。
  • 对于 70%70\% 的数据,保证 n≤106n \leq 10^6,m≤2×104m \leq 2 \times 10^4。
  • 对于 100%100\% 的数据,保证 1≤n≤1071 \leq n \leq 10^7,1≤m≤1051 \leq m \leq 10^5,1≤∣t∣≤1001 \leq |t| \leq 100,s,ts, t 中均只含字母 E S W N。