Module: 动态图编程


Problem

6 /7


子串路径

Problem

给定一个包含 n 个顶点和 m 条有向边的图。每个顶点包含一些小写拉丁字母。 
让我们将路径的长度定义为沿着这条路径遇到某个字母的最大次数。例如,如果路径中的字母组成字符串“abaca”,则该路径的值为3。
你的任务——找到具有最大值的路径。

输入:
第一行包含两个整数n,m(1 ≤ n, m ≤ 200000),表示该图有n个顶点和m条有向边。
第二行包含字符串 s,仅由小写拉丁字母组成。符号编号 i —这是写在最上面的数字 i 的字母。
然后是 m 行。这些行中的每一行都包含两个整数 x, y (1 ≤ x, y ≤ n),描述从 x 到 y 的有向边。注意x可以等于y,x和y之间可以有多条边。
此外,图形可能会断开连接。

输出:
打印一个数字——最大路径长度。如果存在具有任意大值的路径,则打印 -1。

示例:
  <正文>
输入 输出
5 4
蕉麻
1 2
1 3
34
4 5
3
6 6
xzyabc
1 2
3 1
23
5 4
4 3
6 4
-1
10 14
xzyzyzyzqx
1 2
24
3 5
4 5
26
68
6 5
2 10
39
10 9
46
1 10
28
37
4