#aBC197F. [ABC197F] Construct a Palindrome

[ABC197F] Construct a Palindrome

AT_abc197_f [ABC197F] Construct a Palindrome

题目描述

有一个包含 NN 个顶点和 MM 条边的连通无向图(不一定是简单图)。
ii 条边连接顶点 AiA_i 和顶点 BiB_i,并且上面写有一个字母 CiC_i
你可以从顶点 11 走到顶点 NN,路径上可以多次经过同一条边或顶点。
请任选一条这样的路径,将经过的边上的字母按顺序排列,得到一个字符串。
请判断是否存在使得该字符串为回文串的路径。如果存在,求所有可能的回文串中最短的长度;如果不存在,输出 1-1

输入格式

输入以如下格式从标准输入读入。

NN MM
A1A_1 B1B_1 C1C_1
A2A_2 B2B_2 C2C_2
A3A_3 B3B_3 C3C_3
\vdots
AMA_M BMB_M CMC_M

输出格式

如果可以构造出回文串,输出所有可能回文串长度的最小值;否则输出 1-1

输入输出样例 #1

输入 #1

8 8
1 2 a
2 3 b
1 3 c
3 4 b
4 5 a
5 6 c
6 7 b
7 8 a

输出 #1

10

输入输出样例 #2

输入 #2

4 5
1 1 a
1 2 a
2 3 a
3 4 b
4 4 a

输出 #2

5

输入输出样例 #3

输入 #3

3 4
1 1 a
1 2 a
2 3 b
3 3 b

输出 #3

-1

说明/提示

限制条件

  • 2N10002 \leq N \leq 1000
  • 1M10001 \leq M \leq 1000
  • 1AiN1 \leq A_i \leq N
  • 1BiN1 \leq B_i \leq N
  • CiC_i 是小写英文字母
  • 给定的图是连通的

样例解释 1

按边 1,2,3,1,2,4,5,6,7,81, 2, 3, 1, 2, 4, 5, 6, 7, 8 的顺序经过,得到的字符串为 abcabbacba,这是一个回文串。无法构造更短的回文串,因此答案为 1010

样例解释 2

按边 2,3,4,5,52, 3, 4, 5, 5 的顺序经过,可以得到字符串 aabaa,这是一个回文串。注意可以多次经过同一条边或顶点。

样例解释 3

无法构造出回文串。

由 ChatGPT 4.1 翻译